1. 程式人生 > >React native 分享 友盟分享SDK

React native 分享 友盟分享SDK

APP專案中用到分享功能是很常見的,比如我本次專案中可能還要用到推送、統計相關,所以目前選擇了友盟SDK,本文主要是針對安卓。

首先放官方

跟著整合文件操作,目錄不明白的可以參考DEMO。用 https://developer.umeng.com/sdk/reactnative 的橋接檔案(.java)(其中的js裡的ShareUtil.js可以放到我們自己的元件components資料夾裡,最後呼叫的時候會用到,用法就相當於封裝好的一個元件),用https://developer.umeng.com/sdk/android的最新jar,根據需要整合下載並放到對應的目錄。
整合SDK
只是分享的話,目錄大概是:(注意res資料夾裡的檔案也要複製過來,不然可能會閃退——缺少資原始檔)
目錄1


目錄2

接下來要將上面一幅圖中新引進來的幾個橋接檔案(.java)中引用包名的地方, com.umeng.soexample.invokenative 改成 (包名).invokenative,這時候應該就能看懂這個是怎麼用的了吧,要靈活點哦,比如 WXEntryActivity.java 裡應該是 (包名).wxapi,根據我的目錄結構,相對的之前的 MainActivity.java 就直接是 (包名)。還有我們暫時不用的東西要先註釋掉,比如 DplusReactPackage.java 裡面的

// 因為這些的橋接檔案.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;),如果沒有引,執行的時候會報錯到相應方法。

到這裡我們應該能調通微信分享了(打包後apk,未打包的會一閃而過,因為微信分享需要驗證包名+appid+appsecret),要想調通QQ等,需要跟著文件Share-Android最後有個 “分享其它工程配置請參照分享工程配置”的入口,我們主要根據這個工程配置 http://dev.umeng.com/sdk_integate/android_sdk/android_share_doc#1_5android/app/src/main/AndroidManifest.xml 里加一些東西:sdk中需要的Activity:新浪、QQ等,其中QQ請使用完整版(即使SDK引的是精簡版,測試精簡版Activity會報錯),當然這些也可以直接從DEMO裡對應的檔案讀取。

至此,重新編譯執行一下應該就能呼叫分享元件了,若報錯不能deleted…什麼的,手動刪除 android / app / build 下的所有檔案即可。