友盟分享使用与踩坑记录

       前言:公司要作第三方分享功能,因为时间比较紧急,因此就采用了第三方,本次使用的是友盟分享,因为是第一次使用这个分享,踩了很多坑,因而写下这篇博客来帮助其余人少踩坑也是给本身加深记忆.android

使用方法

1. 去官网下载Demo进行参考(github.com/umeng/Multi…)

2. 下载所需分享的第三方社会化分享SDK(developer.umeng.com/sdk?spm=a21…)

3. 下载SDK集成辅助工具并生成moudle(developer.umeng.com/tools)

4. 去本身的项目导入这个moudle

5. 接下来就是去看官方Demo来进行对应的操做啦,因为不一样的分享平台可能配置有所不一样,因此就不一一细讲了,你们看官方Demo和说明文档应该不会有什么太大的问题,有问题能够评论一下,我看到确定会答复的(官网说明文档连接developer.umeng.com/docs/66632/…)

踩坑记录

  1. 微信须要创建一个空Activity继承他的回调,若是你们根据他的规范操做了还有这个报错的话,你们记住必定要放在你的主moudle中,否则他是找不到这个Activity的,仔细检查清单文件的Activity是否路径正确,固然,若是要彻底模块化或者是作SDK的话,可使用别名,相似于这样:git

     
    
    
     <activity android:name="wxapi.WXEntryActivity"
         android:configChanges="keyboardHidden|orientation|screenSize"
         android:exported="true"
         android:theme="@android:style/Theme.Translucent.NoTitleBar"
         />
     <activity-alias
         android:name="${applicationId}.wxapi.WXEntryActivity"
         android:targetActivity="wxapi.WXEntryActivity"/>
    复制代码
  2. 友盟面板的分享应用字体是没有国际化的,若是须要国际化的或者是分享面板的定制不能知足需求的能够自定义面板,而后参考官方demo的 SharePlatformActivity 与 ShareDetailActivity 实现点击自定义dialog的item跳转到对应的分享github

  3. 友盟分享的错误码也是没有国际化的,若是是产品须要自定义Toast文字能够这样 api

    String text = "";
     if (platform != SHARE_MEDIA.MORE && platform != SHARE_MEDIA.SMS
             && platform != SHARE_MEDIA.EMAIL
             && platform != SHARE_MEDIA.FLICKR
             && platform != SHARE_MEDIA.FOURSQUARE
             && platform != SHARE_MEDIA.TUMBLR
             && platform != SHARE_MEDIA.POCKET
             && platform != SHARE_MEDIA.PINTEREST
    
             && platform != SHARE_MEDIA.INSTAGRAM
             && platform != SHARE_MEDIA.GOOGLEPLUS
             && platform != SHARE_MEDIA.YNOTE
             && platform != SHARE_MEDIA.EVERNOTE) {
         if (platform.toString().equals("WEIXIN")) {
             text = getResources().getString(R.string.wechat);
         } else if (platform.toString().equals("WEIXIN_CIRCLE")) {
             text = getResources().getString(R.string.wechat);
         } else if (platform.toString().equals("QQ")) {
             text = getResources().getString(R.string.qq);
         } else if (platform.toString().equals("QZONE")) {
             text = getResources().getString(R.string.q_zone);
         }
         if (throwable.toString().contains("2008")) {
             ToastUtil.showShort(String.format(getResources().getString(R.string.not_installed), text));
         }
     }
    复制代码
4. 为了包的体积比较小并且没有须要实现对应功能,我下载的都是精简版,目前发现分享只能是那个官方QQ,轻聊版啥的仍是提示未安装改应用,这个目前尚未解决,有大佬知道能够告知一下,谢谢!!!
相关文章
相关标签/搜索