unity ShareSDk 接入遇到的问题

2 篇文章 0 订阅

ShareSDK接入的是整个untiy 的包 官方直接包含了android 和 ios 所以只需要写接口和处理打包配置文件就行

安卓处理

1:android

:

2:在配置文件里面写回调函数和设置权限 (已经有的直接点击这个就行了)

注意修改这个 AndroidManifest.xml 微信回调要和包名一样

2:微信回调 要根据包名生成不同的DemoCallBack.jar文件

官方工程里面的微信回调改成自己的包名 打包为DemoCallBack.jar文件 替换工程里面的DemoCallBack文件

3:提示语言设置根据手机当前系统语言显示提示 (不会根据游戏内部语言修改而改变)

 

 

ios 一定要直接导入插件不能删除ios下的东西

出现错误  编译完了,在链接时候报的错 这个不是报错,这个不用管 桥接文件里有警告的东西,不用管的

解决报错

这里点击+号,添加下这个JavaScriptCore.framework依赖库

 

使用代码

using UnityEngine;
using System.Collections;
using System.IO;
using cn.sharesdk.unity3d;
using LuaInterface;
using LuaFramework;
using System.Collections.Generic;

public class ShareSDKTool : MonoBehaviour
{
    //sharesdk实例
    private ShareSDK ssdk;
    //设置lua回调方法
    LuaFunction luaFun;
    //截屏图片名字
    private string ssname = "shareShot.png";

    //设置分享参数
    private string strDes = "";
    private string strImagtPath = "";
    private string strUrl = "";
    private string strUrlDes = "";
    private int contentType = 2;
    private string strImageUrl = "";
    private string strTitile = "";
    private string strTitleUrl = "";
    private string strSite = "";
    private string strSiteUrl = "";
    private string strComent = "";
    private string strMusicUrl = "";

    void Awake()
    {
        strImagtPath = Path.Combine(Application.temporaryCachePath, ssname);
    }

    //初始化sdk
    public void InitShareSDK()
    {
        ssdk = gameObject.GetComponent<ShareSDK>();
        if (ssdk == null)
        {
            ssdk = gameObject.AddComponent<ShareSDK>();
        }
        //设置回调函数
        ssdk.shareHandler = OnShareResultHandler; 
    }

    //设置分享的参数
    public void InitShareContentPramas(string strdes,string strurl, string strimagtpath, string strurldes, int contenttype,string strimageurl,string strtile,string strtitleurl,string strsite,string strsiteurl,string strcoment,string strmusicurl)
    {
        strDes = strdes;
        strUrl = strurl;
        if(strimagtpath != "")
        {
            strImagtPath = strimagtpath;
        }
        strUrlDes = strurldes;
        contentType = contenttype;
        strImageUrl = strimageurl;
        strTitile = strtile;
        strTitleUrl = strtitleurl;
        strSite = strsite;
        strSiteUrl = strsiteurl;
        strComent = strcoment;
        strMusicUrl = strmusicurl;
    }

    //开始设置分享参数
    private ShareContent SetShareContent()
    {
        //分享的内容
        ShareContent content = new ShareContent();

        //文本分享 只有一个text
        //设置分享的文字 所有平台都需要这个字段 所有分享类型都需要
        //text分享
        if (contentType == 1)
        {
            if (strDes != "")
            {
                content.SetText(strDes);
            }
            //标题
            if (strTitile != "")
            {
                content.SetTitle(strTitile);
            }
#if UNITY_ANDROID
            //标题链接
            if (strTitleUrl != "")
            {
                content.SetTitleUrl(strTitleUrl);
            }
            //QQ空间文本
            if (strSite != "")
            {
                content.SetSite(strSite);
            }
            if (strSiteUrl != "")
            {
                content.SetSiteUrl(strSiteUrl);
            }
#endif
        }
        else
        {
            //图片分享 webpage分享
            if (strDes != "")
            {
                content.SetText(strDes);
            }
            //网络图片路径
            if (strImageUrl != "")
            {
                content.SetImageUrl(strImageUrl);
            }
            else
            {
                content.SetImagePath(strImagtPath); //本地图片路径
            }
            //标题
            if (strTitile != "")
            {
                content.SetTitle(strTitile);
            }
            //Android Only
#if UNITY_ANDROID
            //标题链接
            if (strTitleUrl != "")
            {
                content.SetTitleUrl(strTitleUrl);
            }
            //QQ空间文本
            if (strSite != "")
            {
                content.SetSite(strSite);
            }
            if (strSiteUrl != "")
            {
                content.SetSiteUrl(strSiteUrl);
            }
#elif UNITY_IPHONE
            //分享的网站描述
            if (strUrlDes != "")
            {
                 content.SetUrlDescription(strUrlDes);
            }
#endif
            //网页链接
            if (strUrl != "")
            {
                content.SetUrl(strUrl);
            }
            //描述
            if (strComent != "")
            {
                content.SetComment(strComent);
            }
            //音乐链接
            if (strMusicUrl != "")
            {
                content.SetMusicUrl(strMusicUrl);
            }
        }            
        //设定分享内容的主要类型,放在最后一步
        content.SetShareType(contentType);

        return content;
    }
    //启动分享 通过平台ID
    public void ShareSDKByPlantForm(int plantform, LuaFunction f1)
    {
        PlatformType nowplantform = PlatformType.WeChatMoments;
        ShareContent content = SetShareContent();
        luaFun = f1;
      
        if (plantform == 23)
        {
            nowplantform = PlatformType.WeChatMoments;
        }
        else if (plantform == 22)
        {
            nowplantform = PlatformType.WeChat;
        }
        else if (plantform == 10)
        {
            nowplantform = PlatformType.Facebook;
        }
        else if (plantform == 1)
        {
            nowplantform = PlatformType.SinaWeibo;
        }
        else if (plantform == 24)
        {
            nowplantform = PlatformType.QQ;
        }
        else if (plantform == 6)
        {
            nowplantform = PlatformType.QZone;
        }

        ssdk.ShareContent(nowplantform, content);
    }

    //分享的结果回调函数
    private void OnShareResultHandler(int reqID, ResponseState state, PlatformType type, Hashtable result)
    {
        int stateNow = 1;
        if (state == ResponseState.Success)
        {
            print("share result :");
            print(MiniJSON.jsonEncode(result));
            stateNow = 1;
        }
        else if (state == ResponseState.Fail)
        {
            print("fail! throwable stack = " + result["stack"] + "; error msg = " + result["msg"]);
            stateNow = 2;
        }
        else if (state == ResponseState.Cancel)
        {
            print("cancel !");
            stateNow = 3;
        }

        Debug.Log("分享的结果回调函数xxxxxxxxxxxxxxxxxxxxxx" + state +"-------"+ stateNow);
        luaFun.Call(stateNow);
    }

    //根据不同包 需要不同的分型key 值
    public void SetPlantFormParams(string ssdkID, string ssdkKey, string weichatID, string weichatKey,string qqID, string qqKey, string sinaID, string sinaKey, string facebookID, string facebookKey)
    {
#if UNITY_ANDROID
        //设置 平台的id
        ssdk.appKey = ssdkID;
        ssdk.appSecret = ssdkKey;
        //微信
        ssdk.devInfo.wechat.AppId = weichatID;
        ssdk.devInfo.wechat.AppSecret = weichatKey;
        ssdk.devInfo.wechatMoments.AppId = weichatID;
        ssdk.devInfo.wechatMoments.AppSecret = weichatKey;
        //QQ
        ssdk.devInfo.qq.AppId = qqID;
        ssdk.devInfo.qq.AppKey = qqKey;
        ssdk.devInfo.qzone.AppId = qqID;
        ssdk.devInfo.qzone.AppKey = qqKey;
        //Sina
        ssdk.devInfo.sinaweibo.AppKey = sinaID;
        ssdk.devInfo.sinaweibo.AppSecret = sinaKey;
        //facebook
        ssdk.devInfo.facebook.ConsumerKey = facebookID;
        ssdk.devInfo.facebook.ConsumerSecret = facebookKey;

#elif UNITY_IPHONE
          //设置 平台的id
        ssdk.appKey = ssdkID;
        ssdk.appSecret = ssdkKey;
        //微信
        ssdk.devInfo.wechat.app_id = weichatID;
        ssdk.devInfo.wechat.app_secret = weichatKey;
        ssdk.devInfo.wechatMoments.app_id = weichatID;
        ssdk.devInfo.wechatMoments.app_secret = weichatKey;
        //QQ
        ssdk.devInfo.qq.app_id = qqID;
        ssdk.devInfo.qq.app_key = qqKey;
        ssdk.devInfo.qzone.app_id = qqID;
        ssdk.devInfo.qzone.app_key = qqKey;
        //Sina
        ssdk.devInfo.sinaweibo.app_key = sinaID;
        ssdk.devInfo.sinaweibo.app_secret = sinaKey;
        //facebook
        ssdk.devInfo.facebook.api_key = facebookID;
        ssdk.devInfo.facebook.app_secret = facebookKey;

#endif
        //设置好参数后再初始化SDK
        ssdk.InitShareSDk();
    }
}

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值