zoukankan      html  css  js  c++  java
  • 使用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:UsersAdministratorDesktopDemoCallback.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之后如果遇到“分享操作正在后台进行”,可尝试清理微信缓存和重启手机解决
  • 相关阅读:
    Swift与OC混合开发
    Swift继承
    Swift方法
    Swift属性
    Swift闭包
    Swift结构体和类
    Swift函数
    Swift基础语法
    Xcode使用篇-重新安装Xcode
    iOS组件化开发-CocoaPods安装
  • 原文地址:https://www.cnblogs.com/xchaos/p/8678998.html
Copyright © 2011-2022 走看看