VR開發-分享平臺的建設(涉及第三方登陸)

1、什么是分享?

發朋友圈,扣扣空間,轉載文章,轉發鏈接給扣扣好友,微信好友,這就是分享!

2、分享方式:

1、跳轉APP,例如我們在一些應用上通過分享至朋友圈或者分享至微博等。
2、二維碼掃描分享,二維碼中帶有分享的信息。
但是怎么在Unity中進行分享呢?

3、分享平臺

說到分享其實無外乎微信,微博,QQ平臺。
但是實際上有很多平臺,只不過我們訪問不到而已,如果要做國際化分享,那么就必須導入相應的SDK


Paste_Image.png
4、常見的分享平臺
1、友盟分享 點擊進入官網
選擇Unity就可以使用了

這個下載比較坑

Paste_Image.png
Paste_Image.png

官方的集成文檔沒什么難度,主要在于對Unity的熟悉程度,還有就是打包后,調用各平臺的設置比較麻煩

2、Share分享點擊進入官網
Paste_Image.png

這邊點擊相應的平臺下載后,會直接打開相應的GitHub網址

Paste_Image.png
Paste_Image.png

下載后,打開Unity導入進來。包里面總共兩個腳本,一張圖片

Paste_Image.png

按照GITHub進行相關的開發就可以。

如何使用:將項目中Unity3dDemo/Assets/Plugins目錄拷貝到我們項目的Assets目錄,或者導入sharesdk-unity3d-plugin.unitypackage

1.給Camera掛載ShareSDK腳本.這個腳本是用來配置分享的平臺信息

2.默認分享平臺比較多,如果只想支持部分平臺的分享, 只需要去修改 ShareSDKDevInfo 腳本中 DevInfoSet 類. 注釋掉不需要的分享的平臺即可

3.接下來實現自定義界面來分享功能
這是系統的小案例,我們只需要將分享平臺進行對應的添加。至于里面的App_Id是什么?這個實在騰訊微信平臺注冊的id號。這里可以去微信開發者平臺根據相關流程獲取。


image.png

那么我們如何進行自定義分享呢?

搭建界面
public class ShareSDKTest : MonoBehaviour {

    private ShareSDK shareSDK;
    public Text messageText;

    void Start () {
        shareSDK = GetComponent <ShareSDK> ();
        //  //分享回調事件 綁定
        shareSDK.shareHandler += ShareResultHandle;
    }

    // 點jiWechat進行分享
    public void wechatOnClickToShare()
    {
        ShareContent content = new ShareContent ();
        content.SetText ("雷潮開始發功了");
        content.SetTitle ("你懂的");
        // 分享網址
        content.SetUrl ("http://www.lxweimin.com/u/74372cf48f59");

        //出分享菜單選列表
        shareSDK.ShowPlatformList (null, content, 100, 100);
        // 指定分享平臺
        shareSDK.ShowShareContentEditor (PlatformType.WeChat, content);
    }
        
    //分享結果回調
    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 !~!~~~~~~";
        }
    }
}

另一個扣扣分享也是一樣的寫法,唯獨在上面分享平臺選擇修改一下

                // 指定分享平臺
        shareSDK.ShowShareContentEditor (PlatformType.QQ, content);

這里要注意,按鈕事件需要注冊綁定。別到時候傻逼。。。

打印結果:

打印結果
第三方登陸:

經常會遇到這種界面:

快速登陸

這種如何制作?

    private ShareSDK shareSDK;
    public Text messageText;
    void Start () {
        shareSDK = GetComponent <ShareSDK> ();
        //授權回調事件
        shareSDK.authHandler += AuthResultHandle;
        //用戶信息事件
        shareSDK.showUserHandler += GetUserInfoResoultHandle;
    }
// 注意:一般在開發過程中,會判斷用戶手機有沒有裝相關的快速登陸的軟件,例如沒有裝QQ那么就不顯示QQ快捷登陸
      // QQ登陸   
       public void loginQQClick()
    {
        // 選擇何種方式登陸
        shareSDK.Authorize (PlatformType.QQ);
    }
     // 微信登陸
    public void loginWechatClick()
    {
        shareSDK.Authorize (PlatformType.WeChat);
    }
   // 登陸狀態句柄
    void AuthResultHandle (int reqID, ResponseState state,PlatformType type,Hashtable data)
    {
        if (state == ResponseState.Success) {
            messageText.text = "授權登錄成功";

            //授權成功的話, 獲取用戶的資料
            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來判斷不同的平臺獲取用戶信息的回調
            //將返回數據編碼成Json格式的數據, 進行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 !~!~~~~~~";

        }

    }

測試無毒放心使用,可以加入首頁Q群下載
3、二維碼分享

其實二維碼分享主要是將網頁嵌入,通過掃描工具進行相關的分享。這個適合將游戲過程或者結果進行分享,同時夾帶我們的廣告,類似綁定宣傳。
Unity進行二維碼生成

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容