項目中使用的時候,首先參考了極光推送的官方文檔:https://github.com/jpush/jpush-phonegap-plugin,調用 Android 和 iOS 通用的 API,使用安卓機測試效果。
使用問題:
window.JPush.init() 報錯:init of undefined ...
window.JPush.getRegistrationID(onGetRegistrationID),也沒有進入該函數更不消說獲取 RegistrationID 了
此時調用的 API 代碼都是按照 GitHub 上 example/index.html 中的代碼執行的,鄙人不才,愣是研究了兩天,終是搞清楚了規范
猜測原因:
1、開始下載 jpush-phonegap-plugin 的時候,APP_KEY 值不對,后來直接在代碼中替換了 APP_KEY 的值,可能造成一些問題
2、網絡環境問題,打包后的 android 文件夾內, ST/platforms/android/app/src/main/assets/www 下沒有plugins 文件夾,說明安裝有問題
操作步驟:
項目名稱:ST
1、刪除 android 文件夾 (ST/platforms/android)
2、卸載 jpush-phonegap-plugin 和 cordova-plugin-jcore
cordova plugin remove jpush-phonegap-plugin
cordova plugin remove cordova-plugin-jcore
無法先卸載 cordova-plugin-jcore,因為該插件被極光插件所依賴
3、重新添加安卓
cordova platform add android
4、下載極光推送插件
cordova plugin add jpush-phonegap-plugin --variable APP_KEY=your_jpush_appkey
5、使用 GitHub 上 example/index.html 里面的代碼
6、執行 npm run android
此時,可以正確獲取到 RegistrationID 了
以上操作所對應版本說明:
cordova-android : 7.1.1
cordova-plugin-jcore: 1.2.3
jpush-phonegap-plugin: 3.4.3
ps:如果碰到類似情況,安裝時使用了錯誤的 APP_KEY,首先卸載 jpush-phonegap-plugin ,不要只改了代碼中的 APP_KEY 值就繼續打包哦,能容易出BUG。。。