Unity攤
> 中午好,今天給大家分享:Unity開發安卓端分享和授權登登錄
1. 準備工作
結構如下圖所示:
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
最后如果有疑問,歡迎留言聯系.
如果覺得本文對你有所幫助, 歡迎添加喜歡.
如需轉載,請標明出處.