如何通過ShareSDK的Unity3D快速接入Android/iOS分享與授權(quán)

Unity3D是由Unity Technologies開發(fā)的一個(gè)讓玩家輕松創(chuàng)建諸如三維視頻游戲、建筑可視化、實(shí)時(shí)三維動(dòng)畫等類型互動(dòng)內(nèi)容的多平臺(tái)的綜合型游戲開發(fā)工具,是一個(gè)全面整合的專業(yè)游戲引擎;在游戲中使用分享功能能夠有效的幫助游戲運(yùn)營(yíng)推廣,通過分享回流來提高APP安裝量。ShareSDK的Unity3D插件可以幫助開發(fā)者快速實(shí)現(xiàn)分享與授權(quán)功能。

新建網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站開發(fā)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)2013年開創(chuàng)至今到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)

一、應(yīng)用注冊(cè)

獲取appkey,操作步驟可參考:《Mob開發(fā)者后臺(tái)使用指南》

二、快速集成

下載ShareSDK的Unity3D工具類,雙擊或?qū)隨hareSDK.unitypackage導(dǎo)入相關(guān)文件。 注意該操作可能會(huì)覆蓋您原來已經(jīng)存在的文件。

掛接ShareSDK腳本并配置平臺(tái)信息

選擇好需要掛接的GameObject(例如Main Camera),在右側(cè)欄中點(diǎn)擊Add Component,選擇Share SDK 進(jìn)行掛接。

如何通過ShareSDK的 Unity3D快速接入Android/iOS分享與授權(quán)cdn.xitu.io/2019/6/17/16b64a4fec59d22b?imageView2/0/w/1280/h/960/format/webp/ignore-error/1">

掛接后會(huì)發(fā)現(xiàn)提供了當(dāng)前支持的平臺(tái)和及其配置信息??梢灾苯釉诖颂幮薷哪闼枰钠脚_(tái)的配置信息。需要注意的是當(dāng)前的編譯環(huán)境是Android還是iOS,其字段名稱是不同的哦!

Android編譯配置

如何通過ShareSDK的 Unity3D快速接入Android/iOS分享與授權(quán)

關(guān)鍵文件:mainTemplate.gradle和proguard-user.txt

  1. Unity2017及以上版本,在Build Settings > Player Settings下面,有兩個(gè)開關(guān),新建項(xiàng)目的話打開這兩個(gè)開關(guān)就可以在Plugins>Android生成對(duì)應(yīng)的兩個(gè)文件;由于這兩個(gè)文件ShareSDK都有直接提供,只需導(dǎo)入.unitypackage就好,Unity檢測(cè)到已經(jīng)存在這兩個(gè)文件,自動(dòng)會(huì)更新為勾選狀態(tài);

  2. Build的時(shí)候有一個(gè)Build ? ? System選項(xiàng),此選項(xiàng)默認(rèn)選擇的Internal,切記要改成選擇里面的gradle選項(xiàng)(重要

  3. 圖中所示的mainTemplate.gradle文件,即為集成的核心文件,使用編輯器打開此文件,要點(diǎn)內(nèi)容如下:

此處為區(qū)分Unity5.6和Unity2017 gradle插件版本的地方,開發(fā)時(shí)用到哪個(gè)版本就使用哪個(gè),若使用到其他Unity版本,請(qǐng)隨意選擇一個(gè),然后build,編譯的時(shí)候會(huì)報(bào)錯(cuò)的,Console控制臺(tái)信息報(bào)錯(cuò)時(shí)會(huì)提示插件版本是多少,根據(jù)提示修改成需要的版本就好(只修改后面的數(shù)字,比如:2.3.0或者2.1.0)

buildscript{

repositories{

jcenter()

}

dependencies{

classpath'com.android.tools.build:gradle:2.3.0'//Unity2017

//classpath 'com.android.tools.build:gradle:2.1.0'//Unity5.6

// 注冊(cè)MobSDK

classpath'com.mob.sdk:MobSDK:+'

}

}

此處為配置簽名文件和簽名文件的別名和密碼(正式發(fā)布apk需要的簽名文件),可以寫絕對(duì)路徑,也可以寫相對(duì)路徑,相對(duì)路徑使用”..\”跳出一層目錄,跳出多層則連續(xù)拼接

signingConfigs{

release{

keyAlias 'demokey.keystore'

keyPassword '123456'

storeFile file('F:\\Unitydemo(CJY)\\MobPushForUnity\\Assets\\Plugins\\Android\\demokey.keystore')

storePassword '123456'

}

}

此處為混淆文件的配置,也就是MobPush提供的proguard-user.txt文件,此文件內(nèi)容不需要更改,按照提供的即可, 如自己代碼需要額外增加混淆邏輯,可自行增加混淆規(guī)則,如果是Unity2017以下版本,請(qǐng)把注釋的代碼調(diào)換一下即可; (minifyEnabled屬性為是否開啟代碼混淆:true為開啟混淆,false為關(guān)閉)

buildTypes {

release{

minifyEnabled true// 是否混淆

//shrinkResources false// 是否去除無效的資源文件

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-user.txt' //Unity2017及以上

//proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt' ?//Unity2017以下

signingConfig signingConfigs.release

}

debug{

minifyEnabled false

signingConfig signingConfigs.release

}

}

  1. 配置第三方key信息

ShareSDK提供了一個(gè)MobSDK.gradle文件,可以在里面直接將mob的key改成自己的,并且刪除不需要的平臺(tái),或者修改成自己的第三方key的信息即可;

如何通過ShareSDK的 Unity3D快速接入Android/iOS分享與授權(quán)

apply plugin: 'com.mob.sdk'

MobSDK{

appKey "moba6b6c6d6"

appSecret "b89d2427a3bc7ad1aea1e1e8c1d36bf3"

ShareSDK {

version "3.3.0"

//平臺(tái)配置信息

devInfo {

SinaWeibo {

id 1

sortId 1

appKey "568898243"

appSecret "38a4f8204cc784f81f9f0daaf31e02e3"

callbackUri "http://www.sharesdk.cn"

shareByAppClient true

enable true

}

Wechat{

id 4

sortId 4

appId "wx4868b35061f87885"

appSecret "64020361b8ec4c99936c0e3999a9f249"

userName "gh_afb25ac019c9"

path "pages/index/index.html?id=1"

withShareTicket true

miniprogramType 0

bypassApproval false

enable true

}

WechatMoments{

id 5

sortId 5

appId "wx4868b35061f87885"

appSecret "64020361b8ec4c99936c0e3999a9f249"

bypassApproval false

enable true

}

QQ{

id 7

sortId 7

appId "100371282"

appKey "aed9b0303e3ed1e27bae87c33761161d"

shareByAppClient true

bypassApproval false

enable true

}

Facebook{

id 8

sortId 8

appKey "1412473428822331"

appSecret "a42f4f3f867dc947b9ed6020c2e93558"

callbackUri "https://mob.com"

shareByAppClient true

enable true

}

}

}

}

iOS編譯配置

初始化與社交平臺(tái)信息配置

修改ShareSDKDevInfo.cs文件,配置所需的平臺(tái)信息

1.配置您自己的ShareSDK的AppKey (通過第一步獲取)

publicclassAppKey

{

//配置ShareSDK AppKey

publicstring appKey = "a5d9150e8348";

}

2.選擇所需要的平臺(tái),不想要的可以直接注釋或刪掉

publicclassDevInfoSet

{

publicSinaWeiboDevInfo sinaweibo;

publicTencentWeiboDevInfo tencentweibo;

publicQQ qq;

publicQZone qzone;

}

3.配置對(duì)應(yīng)平臺(tái)的信息(建議直接修改字符串值即可)

publicclassSinaWeiboDevInfo: DevInfo

{

#if UNITY_ANDROID

publicconstinttype = (int) PlatformType.SinaWeibo;

publicstring SortId = "1";

publicstring AppKey = "568898243";

publicstring AppSecret = "38a4f8204cc784f81f9f0daaf31e02e3";

publicstring RedirectUrl = "http://www.sharesdk.cn";

publicstring ShareByAppClient = "false";

#elif UNITY_IPHONE

publicconstinttype = (int) PlatformType.SinaWeibo;

publicstring app_key = "568898243";

publicstring app_secret ="38a4f8204cc784f81f9f0daaf31e02e3";

publicstring redirect_uri = "http://www.sharesdk.cn";

publicstring auth_type = "both"; ? ? ? //can pass "both","sso",or "web"

#endif

}

三、接口調(diào)用

首先引入命名空間:

usingcn.sharesdk.unity3d;

privateShareSDK ssdk;

分享

1.定制分享信息

ShareContent content = new ShareContent();

content.SetText("this is a test string.");

content.SetImageUrl("https://f1.webshare.mob.com/code/demo/img/1.jpg");

content.SetTitle("test title");

content.SetTitleUrl("http://www.mob.com");

content.SetSite("Mob-ShareSDK");

content.SetSiteUrl("http://www.mob.com");

content.SetUrl("http://www.mob.com");

content.SetComment("test description");

content.SetMusicUrl("http://mp3.mwap8.com/destdir/Music/2009/20090601/ZuiXuanMinZuFeng20090601119.mp3");

content.SetShareType(ContentType.Webpage);

分享參數(shù)可參考:平臺(tái)參數(shù)說明文檔

2.設(shè)置分享回調(diào)

ssdk.shareHandler = ShareResultHandler;

//以下為回調(diào)的定義:

voidShareResultHandler(intreqID, ResponseState state, PlatformType type, Hashtable result)

{

if(state == ResponseState.Success)

{

print ("share result :");

print (MiniJSON.jsonEncode(result));

}

elseif(state == ResponseState.Fail)

{

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

}

elseif(state == ResponseState.Cancel)

{

print ("cancel !");

}

}

3.進(jìn)行分享

//通過分享菜單分享

ssdk.ShowPlatformList (null, content, 100, 100);

//直接通過編輯界面分享

ssdk.ShowShareContentEditor (PlatformType.SinaWeibo, content);

//直接分享

ssdk.ShareContent (PlatformType.SinaWeibo, content);

授權(quán)(每次都會(huì)跳轉(zhuǎn)到第三方平臺(tái)進(jìn)行授權(quán))

  1. 設(shè)置授權(quán)回調(diào)

ssdk.authHandler = AuthResultHandler;

//以下為回調(diào)的定義:

voidAuthResultHandler(intreqID, ResponseState state, PlatformType type, Hashtable result)

{

if(state == ResponseState.Success)

{

print ("authorize success !");

}

elseif(state == ResponseState.Fail)

{

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

}

elseif(state == ResponseState.Cancel)

{

print ("cancel !");

}

}

  1. 進(jìn)行授權(quán)

ssdk.Authorize(PlatformType.SinaWeibo);

獲取用戶信息 (只會(huì)在第一次跳轉(zhuǎn)到第三方平臺(tái)進(jìn)行授權(quán))

  1. 指定獲取用戶信息的回調(diào)

sdk.showUserHandler = GetUserInfoResultHandler;

//以下為回調(diào)的定義:

voidGetUserInfoResultHandler(intreqID, ResponseState state, PlatformType type, Hashtable result)

{

if(state == ResponseState.Success)

{

print ("get user info result :");

print (MiniJSON.jsonEncode(result));

}

elseif(state == ResponseState.Fail)

{

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

}

elseif(state == ResponseState.Cancel)

{

print ("cancel !");

}

}

  1. 獲取用戶信息

ssdk.GetUserInfo(PlatformType.SinaWeibo);

至此,Unity3D插件部分的工作已經(jīng)完成。如在操作過程中遇到任何問題,歡迎聯(lián)系技術(shù)支持QQ 4006852216隨時(shí)與我們進(jìn)行討論哦~

文章標(biāo)題:如何通過ShareSDK的Unity3D快速接入Android/iOS分享與授權(quán)
網(wǎng)站鏈接:http://muchs.cn/article22/jchcjc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、網(wǎng)站收錄微信公眾號(hào)、網(wǎng)站設(shè)計(jì)公司、建站公司品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)