React native 分享 友盟分享SDK

APP项目中用到分享功能是很常见的,好比我本次项目中可能还要用到推送、统计相关,因此目前选择了友盟SDK,本文主要是针对安卓。java

首先放官方react

  • 集成文档:https://developer.umeng.com/docs/66632/detail/67587#h1-u5DE5u7A0Bu914Du7F6E1 请手动复制打开,不明白csdn为啥要把umeng.com连接给毙掉…下面相关地址同样的。android

  • DEMO:https://github.com/umeng/React_Native_Compentgit

跟着集成文档操做,目录不明白的能够参考DEMO。用 https://developer.umeng.com/sdk/reactnative 的桥接文件(.java)(其中的js里的ShareUtil.js能够放到咱们本身的组件components文件夹里,最后调用的时候会用到,用法就至关于封装好的一个组件),用https://developer.umeng.com/sdk/android的最新jar,根据须要集成下载并放到对应的目录。
集成SDK
只是分享的话,目录大概是:(注意res文件夹里的文件也要复制过来,否则可能会闪退——缺乏资源文件)
目录1
目录2github

接下来要将上面一幅图中新引进来的几个桥接文件(.java)中引用包名的地方, com.umeng.soexample.invokenative 改为 (包名).invokenative,这时候应该就能看懂这个是怎么用的了吧,要灵活点哦,好比 WXEntryActivity.java 里应该是 (包名).wxapi,根据个人目录结构,相对的以前的 MainActivity.java 就直接是 (包名)。还有咱们暂时不用的东西要先注释掉,好比 DplusReactPackage.java 里面的web

// 由于这些的桥接文件.java.jar目前没有放进项目,直接用了会报错
// modules.add(new PushModule(reactContext)); // 推送相关
// modules.add(new AnalyticsModule(reactContext)); // 统计

接着文档,在 MainActivity.java 、MainActivity.java里面加代码,这个时候就应该结合DEMO里的相应文件来改了,由于添加方法以前确定是须要引入(import)的,但文档中没有提。但也不是把DEMO里头部的 import 都引进来,由于DEMO里是把推送和统计功能都作了,因此咱们根据文档里添加的方法和字段选择性的复制过来(import中如有com.umeng.soexample,需换成包名。不在目录内的用换,如import com.umeng.socialize.PlatformConfig;),若是没有引,运行的时候会报错到相应方法。c#

到这里咱们应该能调通微信分享了(打包后apk,未打包的会一闪而过,由于微信分享须要验证包名+appid+appsecret),要想调通QQ等,须要跟着文档Share-Android最后有个 “分享其它工程配置请参照分享工程配置”的入口,咱们主要根据这个工程配置 http://dev.umeng.com/sdk_integate/android_sdk/android_share_doc#1_5 在 android/app/src/main/AndroidManifest.xml 里加一些东西:sdk中须要的Activity:新浪、QQ等,其中QQ请使用完整版(即便SDK引的是精简版,测试精简版Activity会报错),固然这些也能够直接从DEMO里对应的文件读取。api

至此,从新编译运行一下应该就能调用分享组件了,若报错不能deleted…什么的,手动删除 android / app / build 下的全部文件便可。微信