Unity快速集成ShareSDK實現分享和授權登錄

Unity攤
> 中午好,今天給大家分享:Unity開發安卓端分享和授權登登錄
1. 準備工作

ShareSDK下載

結構如下圖所示:


SDK

2. SDK置入

創建一個工程, 導入ShareSDKForU3D.unitypackage
(注: ShareSDK為我們提供一個test場景,可以自己去分析一下.
當然這里的ShareSDK賬號申請以及創建APP等操作就不再說明
我們直接使用官方為我們提供的數據即可)

報錯解決: BuildSetting中把當前的環境改成Android

環境錯誤
接下來我們進入正題:

3. 搭建界面

如圖所示
4. 腳本
a. 給Camera掛載ShareSDK腳本.這個腳本是用來配置分享的平臺信息的

(注: 如果你已經注冊了相應分享平臺的AppKey和AppSecret, 就直接在Inspector面板配置即可,這里我就不帶著去做.)
b. 如果你只想支持部分平臺的分享, 只需要去修改 ShareSDKDevInfo 腳本中 DevInfoSet 類. 注釋掉不需要的分享的平臺即可
c. 在給攝像機添加一個ShareTest腳本, 用來實現分享按鈕和登錄按鈕的點擊事件以及ShareSDK分享和登錄的回調事件
腳本: 
/*
 *Author       *Jens
 */
using UnityEngine;
using System.Collections;
using cn.sharesdk.unity3d;
using UnityEngine.UI;

public class ShareTest : MonoBehaviour
{
    private ShareSDK shareSdk;
    //顯示回調信息的文本框
    public Text msgText;
    void Start ()
    {
        shareSdk = GetComponent <ShareSDK> ();
        //分享回調事件 綁定
        shareSdk.shareHandler += ShareResultHandle;
        //授權回調事件
        shareSdk.authHandler += AuthResultHandle;
        //用戶信息事件
        shareSdk.showUserHandler += GetUserInfoResultHandle;
    }

    #region 分享

    //點擊分享按鈕調用的方法
    public void OnClickedToShare ()
    {
        ShareContent content = new ShareContent ();
        //文本
        content.SetText ("美女帥哥進來看看啊~~");
        //圖片
        content.SetImageUrl ("http://ww3.sinaimg.cn/mw690/be159dedgw1evgxdt9h3fj218g0xctod.jpg");
        //標題
        content.SetTitle ("你好帥");
        content.SetTitleUrl ("http://www.baidu.com");

        content.SetSite ("Mob-ShareSDK");
        content.SetSiteUrl ("http://www.mob.com");
        //分享網址
        content.SetUrl ("http://www.mob.com");
        content.SetComment ("描述");
        //分享類型為音樂時使用
        content.SetMusicUrl ("http://mp3.mwap8.com/destdir/Music/2009/20090601/ZuiXuanMinZuFeng20090601119.mp3");
        content.SetShareType (ContentType.Webpage);

        //彈出分享菜單選擇列表
        shareSdk.ShowPlatformList (null, content, 100, 100);
    
        //指定平臺分享
        //shareSdk.ShowShareContentEditor (PlatformType.QQ,content);

    }

    //分享結果回調
    void ShareResultHandle (int reqID, ResponseState state,PlatformType type,Hashtable data)
    {
        if (state == ResponseState.Success) {
            
            msgText.text = MiniJSON.jsonEncode (data);

        } else if (state == ResponseState.Fail) {

            print ("fail! throwable stack = " +
            data ["stack"] + "; error msg = "
            + data ["msg"]);

        } else if (state == ResponseState.Cancel) {
        
            msgText.text = "Cancel !~!~~~~~~";
            
        }
    }

    #endregion


    #region qq授權登錄

    //點擊登錄按鈕調用的方法
    public void OnClickedToLogin ()
    {
        //請求授權來獲用戶信息從而實現第三方登錄
        shareSdk.Authorize (PlatformType.QQ);
    }

    //授權登錄的回調
    void AuthResultHandle (int reqID, ResponseState state,PlatformType type,Hashtable data)
    {
        if (state == ResponseState.Success) {
            msgText.text = "授權登錄成功";

            //授權成功的話, 獲取用戶的資料
            shareSdk.GetUserInfo (type);

        } else if (state == ResponseState.Fail) {

            print ("fail! throwable stack = " +
            data ["stack"] + "; error msg = "
            + data ["msg"]);

        } else if (state == ResponseState.Cancel) {
        
            msgText.text = "Cancel !~!~~~~~~";
            
        }
    }

    #endregion


    #region 獲取用戶信息的回調

    void GetUserInfoResultHandle (int reqID, ResponseState state,PlatformType type,Hashtable data)
    {
        if (state == ResponseState.Success) {
            //利用PlatformType來判斷不同的平臺獲取用戶信息的回調
            //將返回數據編碼成Json格式的數據, 進行json解析展示到界面即可
            switch (type) {
            case PlatformType.QQ:
                msgText.text = MiniJSON.jsonEncode (data);
                break;
            }

        } else if (state == ResponseState.Fail) {

            print ("fail! throwable stack = " +
            data ["stack"] + "; error msg = "
            + data ["msg"]);

        } else if (state == ResponseState.Cancel) {
        
            msgText.text = "Cancel !~!~~~~~~";
            
        }
    }

    #endregion

}

4. 打包測試

分享

注: 這個地方會發現顯示的是"美的廚房" , 只需要你去騰訊開發者平臺注冊屬于你的應用獲取AppKey和AppSecret, 并在Inspector面板修改即可.

附帶工程: 鏈接: https://pan.baidu.com/s/1jI6wMeq 密碼: k9jy
最后如果有疑問,歡迎留言聯系.
如果覺得本文對你有所幫助, 歡迎添加喜歡.
如需轉載,請標明出處.
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容