Unity使用ShareSDK分享功能,包括自定义分享界面,Android以及IOS分享配置。

项目使用了ShareSDK来做分享功能,ShareSDK还是很良心的作为一个免费的软件竟然还有回复率很高的客服。这帮助了我很多,还有一些问题是在网上查到的答案。过于基础的知识就不再赘述了,可以通过其他人写的博客或者官方文档来了解。
闲言少叙,我们从第一个自定义分享界面开始。


一、自定义分享界面
在分享的时候我们可能不希望用到ShareSDK提供的界面,或者我们需要分享的平台没有它提供的那么多。此时我们就需要进行自定义界面这个工作了。
首先我们看一下原生的Demo是怎么做的,然后根据它的逻辑进行我们的一些自定义修改。原生的代码如下:

 public void ShowShareMenu()
    {
        ShareContent content = new ShareContent();
          //(Android only) 隐藏九宫格里面不需要用到的平台(仅仅是不显示平台)
        //(Android only) 也可以把jar包删除或者把Enabl属性e改成false(对应平台的全部功能将用不了)
        String[] platfsList = { ((int)PlatformType.QQ).ToString(), ((int)PlatformType.Facebook).ToString(), ((int)PlatformType.TencentWeibo).ToString() };
        content.SetHidePlatforms(platfsList);

        content.SetText("---");
        //分享图片链接。 
        content.SetImageUrl("https://car2.autoimg.cn/cardfs/product/g5/M00/2A/9D/1024x0_1_q87_autohomecar__wKjB0lo8bfmAW3jeAANc_bJcaOk942.jpg");
        content.SetTitle("---");

        //(Android only) 针对Android绕过审核的多图分享,传图片String数组 
        String[] imageArray = { "/sdcard/test.jpg", "http://f1.webshare.mob.com/dimgs/1c950a7b02087bf41bc56f07f7d3572c11dfcf36.jpg", "/sdcard/test.jpg" };
        content.SetImageArray(imageArray);

        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.Image);

        //不同平台分享不同内容
        ShareContent customizeShareParams = new ShareContent();
        customizeShareParams.SetText("Sina share content");
        customizeShareParams.SetImageUrl("http://git.oschina.net/alexyu.yxj/MyTmpFiles/raw/master/kmk_pic_fld/small/107.JPG");
        customizeShareParams.SetShareType(ContentType.Text);
        customizeShareParams.SetObjectID("SinaID");
        content.SetShareContentCustomize(PlatformType.SinaWeibo, customizeShareParams);
        //优先客户端分享
        // content.SetEnableClientShare(true);

        //使用微博API接口应用内分享 iOS only
        // content.SetEnableSinaWeiboAPIShare(true);
        ScreenCapture.CaptureScreenshot("ScreenShotToShare");
        content.SetImagePath(Application.persistentDataPath+ "/ScreenShotToShare");
        //通过分享菜单分享
        ssdk.ShowPlatformList(null, content, 100, 100);
        //重写分享界面。
        //ssdk.ShareContent();
    }

上边的代码片段就是ShareSDK用来调出分享的代码,核心的代码是:”ssdk.ShareContent()”这一句。我们只需要重新设置一下Content,然后通过自己写的UGUI去调用分享的方法就可以了。重新设置界面的工作需要在Unity中用UGUI自己拼一个界面就可以了。下图是我自己做的分享界面。
分享界面
调用代码如下:

   //分享到微信朋友圈
    public void ShareWechatMoments()
    {
        ShareContent content = new ShareContent();
        content = ShareContentSet(content);
        //重写分享界面。
        ssdk.ShareContent(PlatformType.WeChatMoments, content);
    }
  //设置Content的方法,这个方法可以统一设置分享的Text以及分享形式。如果需要增加平台会很方便。
      public ShareContent ShareContentSet(ShareContent content)
    {
        content.SetText("这里是分享内容");
        content.SetComment("");
        content.SetShareType(ContentType.Image);
        //content.SetEnableClientShare(true);
        if (myScreenShotPath!=null)
        {
            content.SetImagePath(myScreenShotPath);
        }
        return content;
    }

做完上面的部分,我们此时就已经完成了自定义分享界面,可以很方便的进行自己的分享界面的配置。
二、安卓的配置分享
安卓的其他部分都还好,除了需要用户的KeyStore之外,倒是没有什么别的要求了。下边就来说一说怎么解决安卓的分享问题。我们需要做下边三件事情。

  • 在Unity中为应用创建一个KeyStore。
  • 在微信/新浪开放平台完成Android平台的BundleID填写。以及必须要有的KeyStore,KeyStore的获取方法,后边会说到。
  • 申请获取应用的KeyStore。
    创建KeyStore,在相应的位置填写KeyStore的名称和密码就可以了:
    Unity使用ShareSDK分享功能,包括自定义分享界面,Android以及IOS分享配置。_第1张图片
    微信开放平台填写应用签名:
    Unity使用ShareSDK分享功能,包括自定义分享界面,Android以及IOS分享配置。_第2张图片
    记得应用签名一定要是小写,我写了大写发现没用。。。
    应用签名的获取方法:
    https://github.com/mobileresearch/weibo_android_sdk/blob/master/app_signatures.apk 这是新浪微博提供的应用签名获取工具,装在手机上之后就可以使用,然后根据指示获取应用签名,然后填写到开放平台就可以了。记得微信和微博都要写啊。 这里安卓的一些配置就已经完成了。
    三、IOS的配置分享
    IOS需要添加一些库的引用,还有增加白名单等。这里我贴上图给大家看:
    首先在引用库中添加如下的一些文件,引用库目录是:Build Phases/Link Binary With Libraries 注意现在的Xcode.dylib已经是.tbd文件了.
    Unity使用ShareSDK分享功能,包括自定义分享界面,Android以及IOS分享配置。_第3张图片
    做完这一步,还需要添加URL Schemes 。在Info/URL Types中添加如下。注意这里的wb + Appkey,Appkey是你在微博开放平台上申请的AppKey。
    Unity使用ShareSDK分享功能,包括自定义分享界面,Android以及IOS分享配置。_第4张图片
    配置过了URLTypes,然后就需要配置应用的白名单,即让应用允许调用我们的SDK。路径:Info/Custom IOS Target Properties/LSAppliactionQueriesSchemes然后点击加号增加。
    Unity使用ShareSDK分享功能,包括自定义分享界面,Android以及IOS分享配置。_第5张图片
    Unity使用ShareSDK分享功能,包括自定义分享界面,Android以及IOS分享配置。_第6张图片
    之后进行打包就可以进行分享啦!
    我们的项目用到了,微信,微博分享,并且安卓和IOS都分享成功了。如果你有什么问题也可以留言。

你可能感兴趣的:(Unity)