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

  1. 到官網http://www.mob.com/下載ShareSDK For Unity3D
  2. 新建Unity3d工程,在新建工程裏Assets選擇Import Package裏的Custom Package倒入ShareSDK包android

  3. 導入SDK後會可能會遇到編譯錯誤

    這是由於在ShareSDK裏只有在Android和iOS環境裏纔會定義appKey和appSecret,轉化編譯環境爲Android,選擇菜單裏的File下的Buid Settings,選擇Android和Switch Platform                                         json

  4.  綁定ShareSDK腳本到Main Camera對象api

  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文件夾導出                                                                                                                                                        app

    選擇以前建立的三個包,選擇輸出目錄C:\Users\Administrator\Desktop\DemoCallback.jar,再把DemoCallback.jar覆蓋到默認的工程目錄下的Assets->Plugins->Android->ShareSDK->libsui

    下的Democallback.jar就能夠了spa

  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以後若是遇到「分享操做正在後臺進行」,可嘗試清理微信緩存和重啓手機解決
相關文章
相關標籤/搜索