如何在Cordova Android 7.0.0 以下版本集成最新插件 极光插件为例

前提

Cordova Android 7.0.0开始改变了项目安卓平台的架构。新建一个空项目分别添加Android 6.4.0 和 Android 7.0.0平台:

cordova platform add android@6.4.0
cordova platform add android@7.0.0

生成的安卓平台结构分别为:

如何在Cordova Android 7.0.0 以下版本集成最新插件 极光插件为例

可以看到Cordova从7.0.0项目结构开始和原生Android项目保持一致:

  • 将AndroidManifest.xml,assets,res,libs资源目录整合到src目录下
  • 将src放入一个app模块,app模块由单独的gradle文件配置

导致的问题

因为项目结构的改变,很多插件也开始修改集成方式以支持7.0.0的使用,并在此基础上进行插件更新操作。

而很多针对低版本开发的项目比如Cordova-Android 6.4.0,如果无法直接升级项目版本,只能选择集成老版本的插件,得不到最新支持。

解决办法

我们已经知道了7.0.0开始结构的主要变化,而低版本和高版本的插件集成无非就是拷贝文件的路径不同罢了,核心代码使用都是同一套。

所以低版本项目想要集成只支持7.0.0的新版插件,只要导入插件后,将插件对应文件还原到低版本对应路径便可。

举例

示例插件

这里以jpush-phonegap-plugin为例,这是极光推送官方支持的PhoneGap/Cordova 插件,插件从 v3.4.0 开始支持 cordova-android 7.0.0。

集成

我们要在低版本的项目集成此插件该怎么做:文章来源地址https://www.yii666.com/article/764275.html文章地址https://www.yii666.com/article/764275.html

  1. 老版本插件符合要求,直接集成v3.4.0以下的插件版本。
  2. 需要集成最新的功能,集成最新版本,自己手动配置。

第一种就不说了,我们直接进行第二种方式集成:

  • 以我们最开始Cordova-Android 6.4.0的空项目为例,并使用官方sample作为测试依据
  • 通过 Cordova Plugins 安装
 cordova plugin add jpush-phonegap-plugin --variable APP_KEY=your_jpush_appkey

如何在Cordova Android 7.0.0 以下版本集成最新插件 极光插件为例

  • 导入最新插件后我们再看项目结构,多出了两个目录,这就是新插件

如何在Cordova Android 7.0.0 以下版本集成最新插件 极光插件为例

  • 这时如果我们直接跑sample,无法获取到registrationID,而且原生log中抛出ClassNotFoundException错误,无法成功集成推送

如何在Cordova Android 7.0.0 以下版本集成最新插件 极光插件为例

  • 接下来我们还原插件文件对应低版本路径:

    • 将android/app/src/main/java下的cn.jiguang.*拷贝到android/src/目录下
    • 将android/jniLibs下的所有文件拷贝到android/libs/目录下
    • 删除android/app和android/jniLibs目录

如何在Cordova Android 7.0.0 以下版本集成最新插件 极光插件为例

  • 再次编译运行成功获取registrationID,并且能够成功接收推送,完美。

如何在Cordova Android 7.0.0 以下版本集成最新插件 极光插件为例网址:yii666.com<

  • 此例适用所有极光cordova插件,比如jmessage-phonegap-plugin,cordova-plugin-janalytics

总结

  • Cordova Android 7.0.0结构调整主要体现在资源文件和src目录,目录结构开始贴近原生。
  • Cordova Android 7.0.0以下版本集成最新插件只需将插件对应文件还原到低版本对应路径便可。
  • 同理,如果项目是7.0.0往上的,而插件还没针对7.0.0进行升级,又需要在项目中使用插件怎么办?是否可以根据这篇文章反其道行之呢?留给读者去验证

补充

为何文中JniLibs文件要拷贝到libs下呢?

  • 因为Cordova Android 7.0.0以下的版本在根目录build.gradle中配置了JniLibs引用路径为libs。

如何在Cordova Android 7.0.0 以下版本集成最新插件 极光插件为例网址:yii666.com文章来源地址:https://www.yii666.com/article/764275.html

版权声明:本文内容来源于网络,版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。文本页已经标记具体来源原文地址,请点击原文查看来源网址,站内文章以及资源内容站长不承诺其正确性,如侵犯了您的权益,请联系站长如有侵权请联系站长,将立刻删除

如何在Cordova Android 7.0.0 以下版本集成最新插件 极光插件为例-相关文章

  1. android studio 3.0之后版本自定义文件名生成apk文件

  2. Android Studio 3.0正式版填坑之路

  3. 如何在Cordova Android 7.0.0 以下版本集成最新插件 极光插件为例

  4. Android从5.0到9.0版本的主要变更

  5. Android P(9.0) userdebug版本执行adb remount失败

    [DESCRIPTION]     在android P版本上如果按照“FAQ18076 android 6.0 M userdebug版本执行adb remount失败”的做法在userdebug版本上执行adb remount会提示以下错误:remount of the / superblock failed: Permission deniedremount failed     原因是android P版本后google启用avb(Android Verified Boot)2.0,verified boot and DM-v

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信图片_20190322181744_03.jpg

微信扫一扫打赏

请作者喝杯咖啡吧~

支付宝扫一扫领取红包,优惠每天领

二维码1

zhifubaohongbao.png

二维码2

zhifubaohongbao2.png