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之后如果遇到“分享操作正在后台进行”,可尝试清理微信缓存和重启手机解决
  • 相关阅读:
    HDU 1874 畅通工程续(dijkstra)
    HDU 2112 HDU Today (map函数,dijkstra最短路径)
    HDU 2680 Choose the best route(dijkstra)
    HDU 2066 一个人的旅行(最短路径,dijkstra)
    关于测评机,编译器,我有些话想说
    测评机的优化问题 时间控制
    CF Round410 D. Mike and distribution
    数字三角形2 (取模)
    CF Round410 C. Mike and gcd problem
    CF Round 423 D. High Load 星图(最优最简构建)
  • 原文地址:https://www.cnblogs.com/xchaos/p/8678998.html
Copyright © 2011-2022 走看看