由於微信登錄需要企業審覈,我這裏就不說明了,有需要的可以去官網看一下文檔,和QQ登錄比多了一個打包的步驟。
第一步:到官網申請開發者賬號:MOB
第二步:到騰訊QQ開放平臺申請開發者賬號並創建應用:騰訊開放平臺
點擊創建應用。然後會有一個:APPID和APPKEY 保留下來它
第三步:在Mob官網創建自己的應用: http://dashboard.mob.com/#!/index
保留下應用的APPID和KEY
第四步:在Mob官網下載Unity專用SDK包進行導入到項目中去:點擊下載
第五步:在Unity工程中掛載上:ShareSDK.cs腳本然後將Mob中你創建的應用的Key等信息填寫進去
第六步:在ShareSDK腳本中找到DevInfo定義的地方找到QQ類:修改其中的ID和KEY。
就修改成騰訊開放平臺中你創建的應用的ID和KEY
第七步:創建一個新的腳本掛載到相同的物體上,然後這樣...
using cn.sharesdk.unity3d;
//定義ShareSDK
private ShareSDK shareSdk;
void Start()
{
//獲取ShareSDK
shareSdk = GetComponent<ShareSDK>();
}
/// <summary>
/// 用戶授權 QQ
/// </summary>
public void QQLogin()
{
//設置回掉函數
shareSdk.authHandler = AuthResultHandler;
//請求授權
shareSdk.Authorize(PlatformType.QQ);
}
/// <summary>
/// 授權回掉
/// </summary>
/// <param name="reqID"></param>
/// <param name="state"></param>
/// <param name="type"></param>
/// <param name="result"></param>
void AuthResultHandler(int reqID, ResponseState state, PlatformType type, Hashtable result)
{
switch (state)
{
case ResponseState.Success:
print("authorize success !");
Hashtable user = shareSdk.GetAuthInfo(PlatformType.QQ);
print(MiniJSON.jsonEncode(user));
break;
case ResponseState.Fail:
print("fail! throwable stack = " + result["stack"] + "; error msg = " + result["msg"]);
break;
case ResponseState.Cancel:
print("cancel !");
break;
}
}
第八步:設置分享(可以顯示全平臺分享和指定平臺分享)
分享的時候需要傳遞很多的屬性進去:
詳解可以參考Demo.cs腳本(SDK裏自帶的)裏面有常用的屬性寫法
還有一些不常用的屬性請看:ShareContent.cs腳本
下面給一個示例代碼:
//在Start初始化的時候設置回調
void Start()
{
//獲取ShareSDK
shareSdk = GetComponent<ShareSDK>();
shareSdk.shareHandler = ShareResultHandler;
}
public void fenxiang__QQ() //QQ分享
{
ShareContent content = new ShareContent();
content.SetTitle("測試");
content.SetText("測試文本");
content.SetTitleUrl(
"https://www.gamersky.com/showimage/id_gamersky.shtml?http://img1.gamersky.com/image2019/07/20190725_ls_red_141_2/gamersky_042origin_083_2019725182972C.jpg");
content.SetImageUrl(
"https://www.gamersky.com/showimage/id_gamersky.shtml?http://img1.gamersky.com/image2019/07/20190725_ls_red_141_2/gamersky_042origin_083_2019725182972C.jpg");
content.SetShareType(ContentType.Image);
shareSdk.ShareContent(PlatformType.QQ, content);
}
public void fenxiang_WX()
{
ShareContent content = new ShareContent();
content.SetTitle("標題");
content.SetText("內容");
content.SetImageUrl("https://www.gamersky.com/showimage/id_gamersky.shtml?http://img1.gamersky.com/image2019/07/20190725_ls_red_141_2/gamersky_042origin_083_2019725182972C.jpg");
content.SetUrl("");
content.SetShareType(ContentType.Image);
shareSdk.ShareContent(PlatformType.WeChat, content);
}
//以下爲回調的定義:
void ShareResultHandler(int reqID, ResponseState state, PlatformType type, Hashtable result)
{
myConsole.text += type.ToString();
switch (state)
{
case ResponseState.Success:
print("分享成功" + MiniJSON.jsonEncode(result));
break;
case ResponseState.Fail:
print("分享失敗");
break;
case ResponseState.Cancel:
print("分享取消");
break;
}
}
上面的這種寫法是指定平臺分享:
如果將
shareSdk.ShareContent(PlatformType.QQ, content);
替換成:
ssdk.ShowPlatformList(null, content, 100, 100);
即可以顯示全平臺分享
其中分享傳遞的參數大家需要根據分享的平臺來進行設定!
可以參考Demo.cs或者關注Mob的技術論壇:http://bbs.mob.com/forum.php