前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VR开发-分享平台的建设(涉及第三方登陆)

VR开发-分享平台的建设(涉及第三方登陆)

作者头像
孙寅
发布2020-06-02 16:55:37
6181
发布2020-06-02 16:55:37
举报
文章被收录于专栏:宜达数字宜达数字
1、什么是分享?

发朋友圈,扣扣空间,转载文章,转发链接给扣扣好友,微信好友,这就是分享!

2、分享方式:

1、跳转APP,例如我们在一些应用上通过分享至朋友圈或者分享至微博等。 2、二维码扫描分享,二维码中带有分享的信息。 但是怎么在Unity中进行分享呢?

3、分享平台

说到分享其实无外乎微信,微博,QQ平台。 但是实际上有很多平台,只不过我们访问不到而已,如果要做国际化分享,那么就必须导入相应的SDK

4、常见的分享平台
1、友盟分享 点击进入官网

选择Unity就可以使用了

这个下载比较坑

官方的集成文档没什么难度,主要在于对Unity的熟悉程度,还有就是打包后,调用各平台的设置比较麻烦

2、Share分享点击进入官网

这边点击相应的平台下载后,会直接打开相应的GitHub网址

下载后,打开Unity导入进来。包里面总共两个脚本,一张图片

按照GITHub进行相关的开发就可以。

如何使用:将项目中Unity3dDemo/Assets/Plugins目录拷贝到我们项目的Assets目录,或者导入sharesdk-unity3d-plugin.unitypackage

1.给Camera挂载ShareSDK脚本.这个脚本是用来配置分享的平台信息

2.默认分享平台比较多,如果只想支持部分平台的分享, 只需要去修改 ShareSDKDevInfo 脚本中 DevInfoSet 类. 注释掉不需要的分享的平台即可

3.接下来实现自定义界面来分享功能 这是系统的小案例,我们只需要将分享平台进行对应的添加。至于里面的App_Id是什么?这个实在腾讯微信平台注册的id号。这里可以去微信开发者平台根据相关流程获取。

那么我们如何进行自定义分享呢?

搭建界面

代码语言:javascript
复制
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.jianshu.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 !~!~~~~~~";
        }
    }
}

另一个扣扣分享也是一样的写法,唯独在上面分享平台选择修改一下

代码语言:javascript
复制
                // 指定分享平台
        shareSDK.ShowShareContentEditor (PlatformType.QQ, content);

这里要注意,按钮事件需要注册绑定。别到时候傻逼。。。

打印结果:

打印结果

第三方登陆:

经常会遇到这种界面:

快速登陆

这种如何制作?

代码语言:javascript
复制
    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进行二维码生成

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、什么是分享?
    • 2、分享方式:
      • 3、分享平台
        • 4、常见的分享平台
          • 1、友盟分享 点击进入官网
        • 2、Share分享点击进入官网
          • 第三方登陆:
        • 3、二维码分享
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档