1勋锤、什么是分享?
發(fā)朋友圈侥祭,扣扣空間叁执,轉(zhuǎn)載文章,轉(zhuǎn)發(fā)鏈接給扣扣好友矮冬,微信好友谈宛,這就是分享!
2胎署、分享方式:
1吆录、跳轉(zhuǎn)APP,例如我們?cè)谝恍?yīng)用上通過(guò)分享至朋友圈或者分享至微博等琼牧。
2恢筝、二維碼掃描分享,二維碼中帶有分享的信息巨坊。
但是怎么在Unity中進(jìn)行分享呢撬槽?
3、分享平臺(tái)
說(shuō)到分享其實(shí)無(wú)外乎微信趾撵,微博侄柔,QQ平臺(tái)。
但是實(shí)際上有很多平臺(tái),只不過(guò)我們?cè)L問(wèn)不到而已暂题,如果要做國(guó)際化分享移剪,那么就必須導(dǎo)入相應(yīng)的SDK
4、常見(jiàn)的分享平臺(tái)
1薪者、友盟分享 點(diǎn)擊進(jìn)入官網(wǎng)
這個(gè)下載比較坑
官方的集成文檔沒(méi)什么難度纵苛,主要在于對(duì)Unity的熟悉程度,還有就是打包后啸胧,調(diào)用各平臺(tái)的設(shè)置比較麻煩
2赶站、Share分享點(diǎn)擊進(jìn)入官網(wǎng)
這邊點(diǎn)擊相應(yīng)的平臺(tái)下載后,會(huì)直接打開(kāi)相應(yīng)的GitHub網(wǎng)址
下載后纺念,打開(kāi)Unity導(dǎo)入進(jìn)來(lái)。包里面總共兩個(gè)腳本想括,一張圖片
按照GITHub進(jìn)行相關(guān)的開(kāi)發(fā)就可以陷谱。
如何使用:將項(xiàng)目中Unity3dDemo/Assets/Plugins目錄拷貝到我們項(xiàng)目的Assets目錄,或者導(dǎo)入sharesdk-unity3d-plugin.unitypackage
1.給Camera掛載ShareSDK腳本.這個(gè)腳本是用來(lái)配置分享的平臺(tái)信息
2.默認(rèn)分享平臺(tái)比較多瑟蜈,如果只想支持部分平臺(tái)的分享, 只需要去修改 ShareSDKDevInfo 腳本中 DevInfoSet 類(lèi). 注釋掉不需要的分享的平臺(tái)即可
3.接下來(lái)實(shí)現(xiàn)自定義界面來(lái)分享功能
這是系統(tǒng)的小案例烟逊,我們只需要將分享平臺(tái)進(jìn)行對(duì)應(yīng)的添加。至于里面的App_Id是什么铺根?這個(gè)實(shí)在騰訊微信平臺(tái)注冊(cè)的id號(hào)宪躯。這里可以去微信開(kāi)發(fā)者平臺(tái)根據(jù)相關(guān)流程獲取。
那么我們?nèi)绾芜M(jìn)行自定義分享呢位迂?
public class ShareSDKTest : MonoBehaviour {
private ShareSDK shareSDK;
public Text messageText;
void Start () {
shareSDK = GetComponent <ShareSDK> ();
// //分享回調(diào)事件 綁定
shareSDK.shareHandler += ShareResultHandle;
}
// 點(diǎn)jiWechat進(jìn)行分享
public void wechatOnClickToShare()
{
ShareContent content = new ShareContent ();
content.SetText ("雷潮開(kāi)始發(fā)功了");
content.SetTitle ("你懂的");
// 分享網(wǎng)址
content.SetUrl ("http://www.reibang.com/u/74372cf48f59");
//出分享菜單選列表
shareSDK.ShowPlatformList (null, content, 100, 100);
// 指定分享平臺(tái)
shareSDK.ShowShareContentEditor (PlatformType.WeChat, content);
}
//分享結(jié)果回調(diào)
void ShareResultHandle (int reqID, ResponseState state,PlatformType type,Hashtable data)
{
if (state == ResponseState.Success) {
messageText.text = MiniJSON.jsonEncode (data);
} else if (state == ResponseState.Fail) {
print ("fail! throwable stack = " +
data ["stack"] + "; error msg = "
+ data ["msg"]);
} else if (state == ResponseState.Cancel) {
messageText.text = "Cancel !~!~~~~~~";
}
}
}
另一個(gè)扣扣分享也是一樣的寫(xiě)法访雪,唯獨(dú)在上面分享平臺(tái)選擇修改一下
// 指定分享平臺(tái)
shareSDK.ShowShareContentEditor (PlatformType.QQ, content);
這里要注意,按鈕事件需要注冊(cè)綁定掂林。別到時(shí)候傻逼臣缀。。泻帮。
打印結(jié)果:
第三方登陸:
經(jīng)常會(huì)遇到這種界面:
這種如何制作精置?
private ShareSDK shareSDK;
public Text messageText;
void Start () {
shareSDK = GetComponent <ShareSDK> ();
//授權(quán)回調(diào)事件
shareSDK.authHandler += AuthResultHandle;
//用戶(hù)信息事件
shareSDK.showUserHandler += GetUserInfoResoultHandle;
}
// 注意:一般在開(kāi)發(fā)過(guò)程中,會(huì)判斷用戶(hù)手機(jī)有沒(méi)有裝相關(guān)的快速登陸的軟件锣杂,例如沒(méi)有裝QQ那么就不顯示QQ快捷登陸
// QQ登陸
public void loginQQClick()
{
// 選擇何種方式登陸
shareSDK.Authorize (PlatformType.QQ);
}
// 微信登陸
public void loginWechatClick()
{
shareSDK.Authorize (PlatformType.WeChat);
}
// 登陸狀態(tài)句柄
void AuthResultHandle (int reqID, ResponseState state,PlatformType type,Hashtable data)
{
if (state == ResponseState.Success) {
messageText.text = "授權(quán)登錄成功";
//授權(quán)成功的話(huà), 獲取用戶(hù)的資料
shareSDK.GetUserInfo (type);
} else if (state == ResponseState.Fail) {
print ("fail! throwable stack = " +
data ["stack"] + "; error msg = "
+ data ["msg"]);
} else if (state == ResponseState.Cancel) {
messageText.text = "Cancel !~!~~~~~~";
}
}
// 獲取返回信息
void GetUserInfoResoultHandle(int requisetID,ResponseState state,PlatformType type,Hashtable data)
{
if (state == ResponseState.Success) {
//利用PlatformType來(lái)判斷不同的平臺(tái)獲取用戶(hù)信息的回調(diào)
//將返回?cái)?shù)據(jù)編碼成Json格式的數(shù)據(jù), 進(jìn)行json解析展示到界面即可
switch (type) {
case PlatformType.QQ:
messageText.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) {
messageText.text = "Cancel !~!~~~~~~";
}
}
3、二維碼分享
其實(shí)二維碼分享主要是將網(wǎng)頁(yè)嵌入元莫,通過(guò)掃描工具進(jìn)行相關(guān)的分享赖阻。這個(gè)適合將游戲過(guò)程或者結(jié)果進(jìn)行分享,同時(shí)夾帶我們的廣告柒竞,類(lèi)似綁定宣傳政供。
Unity進(jìn)行二維碼生成