使用ShareSDK在Unity3d截屏分享到微信

  1. 到官网http://www.mob.com/下载ShareSDK For Unity3D
  2. 新建Unity3d工程,在新建工程里Assets选择Import Package里的Custom Package倒入ShareSDK包

  3. 导入SDK后会可能会遇到编译错误

    这是因为在ShareSDK里只有在Android和iOS环境里才会定义appKey和appSecret,转化编译环境为Android,选择菜单里的File下的Buid Settings,选择Android和Switch Platform                                         

  4.  绑定ShareSDK脚本到Main Camera对象

  5. 到官网http://www.mob.com/注册mob开发者账号,注册后登录开发者后台添加新应用,
  6. 把新应用的appKey和appSecrect填入已绑定在Main Camera对象下的Share SDK脚本的App Key和App SecreT
  7. 到微信开放平台https://open.weixin.qq.com/注册开发者账号,申请应用取得AppID和AppSecret

     

     

    应用签名可以通过安装应用和应用签名apk,输入应用包名后获得,应用签名通过开发者后台菜单里的资源中心里下载

     

     

  8. 打开ShareSDK脚本下的DevInfo,启用WeChat(分享给朋友),WeChatMoments(分享到朋友圈)和WeChatFavorites(微信收藏),输入开饭平台成功申请的AppID和AppSecret,启用审核分享(取消Bypass Approval)

     

  9. 打开Unity工程下的AndroidManifest.xml,在微信activity下.wxapi.WXEntryActivity前加上应用的包名
  10. 重新打包DemoCallback.jar,下载Eclipse,到http://www.androiddevtools.cn/下载ADT插件

     

  11. 打开Ecplise菜单里File下Import,导入ShareSDK文件中的安卓工程                                                                                                 
  12. 在src下新建包名com.xxx.xxx.apshare(蚂蚁财富),com.xxx.xxx.wxapi(微信)和com.com.xxx.xxx.yxapi(易信),并把cn.sharesdk.demo.apshare,cn.sharesdk.demo.wxapi和cn.sharesdk.demo.yxapi下的文件分别拷贝到com.xxx.xxx.apshare,com.xxx.xxx.wxapi和com.com.xxx.xxx.yxapi下

    右键src文件夹导出                                                                                                                                                        

    选择之前创建的三个包,选择输出目录C:\Users\Administrator\Desktop\DemoCallback.jar,再把DemoCallback.jar覆盖到默认的工程目录下的Assets->Plugins->Android->ShareSDK->libs

    下的Democallback.jar就可以了

  13. 新建ShareIt脚本,绑定在MainCamera上 

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using cn.sharesdk.unity3d;
    using UnityEngine.UI;
    
    public class ShareIt : MonoBehaviour {
        private ShareSDK shareSdk;
        public Text message;
        void Start()
        {
            message.text = ("开始");
            shareSdk = GetComponent<ShareSDK>();
            //分享回调事件
            shareSdk.shareHandler += ShareResultHandler;
        }
        //分享
        public void OnShareClick()
        {
            ShareContent content = new ShareContent();
    
            ScreenCapture.CaptureScreenshot("capture.png");
            content.SetImagePath(Application.persistentDataPath + "/capture.png");
            content.SetTitle("标题title");                                            //分享标题
            content.SetShareType(ContentType.Image);
            shareSdk.ShowPlatformList(null, content, 100, 100);                      //弹出分享菜单选择列表
            //shareSdk.ShowShareContentEditor(PlatformType.WeChat, content);                 //指定平台直接分享
        }
        // 分享结果回调
        void ShareResultHandler(int reqID, ResponseState state, PlatformType type, Hashtable result)
        {   //成功
            if (state == ResponseState.Success)
            {
                message.text = ("share result :");
                message.text = (MiniJSON.jsonEncode(result));
            }
            //失败
            else if (state == ResponseState.Fail)
            {
                message.text = ("fail! error code = " + result["error_code"] + "; error msg = " + result["error_msg"]);
            }
            //关闭
            else if (state == ResponseState.Cancel)
            {
                message.text = ("cancel !");
            }
            else
            {
                message.text = "ShareResultHandler = " + state.ToString();
            }
        }
        //授权
        public void OnAuthClick()
        {
            //请求微信授权//请求这个授权是为了获取用户信息来第三方登录
            shareSdk.Authorize(PlatformType.WeChat);
            Debug.Log("OnAuth");
            //message.text = ("授权中");
        }
    
    
    }

     

  14. 新建Button来触发分享事件,即OnClick事件里绑定MainCamera的ShareIt.OnShareClick,    新建Text赋值给ShareIt脚本的message

     

  15. 在Player Setting里右侧Identification里设置Package Name包名
  16. Buid之后如果遇到“分享操作正在后台进行”,可尝试清理微信缓存和重启手机解决
posted @ 2018-03-30 22:26    阅读(770)  评论(0编辑  收藏  举报