公司临时接了一个项目要求本猿出差驻场开发,要求打包的apk集成他们提供的jar包,本猿cordova的水平仅限于打包,于是就开始新的踩雷之路
我的思路是编写一个cordova自定义插件然后把jar包集成到这个自定义插件中,在vue中调用,vue通过webpake打包生成www文件(图在下)在js中调用cordova自定义插件中的方法返回
那么好了 首先我们要先自定义插件
1 先安装依赖 plugman (它是用于安装和卸载用于 apache Crodova项目的插件命令行工具,可以给他理解成管理全部插件的东西)
npm install -g plugman (进入项目命令行输入)
2 创建插件 (这个插件创建可以放到cordova中,也可以不放到项目中)
plugman create --name [插件名] --plugin_id [插件id] --plugin_version [插件版本]
例子: plugman create --name ToastDemo --plugin_id cordova-plugin-toastdemo --plugin_version 1.0.0
本猿没有放在项目中创建 (创建出来的没有package.json,以及jar包后面会讲)
创建完毕 进入插件目录,增加插件支持的平台这里只用于android了 ios同理
cd ToastDemo
$ plugman platform add --platform_name android
$ plugman platform add --platform_name ios
接下来 进入 toastDemo 中plugin.xml目录做如下修改,我给圈出来方便
贴出来 方便你们复制
<?xml version='1.0' encoding='utf-8'?>
<plugin id="cordova-plugin-toastdemo" version="1.0.0" xmlns="http://apache.org/cordova/ns/plugins/1.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<name>ToastDemo</name>
<js-module name="ToastDemo" src="www/ToastDemo.js">
<!-- <clobbers target="cordova.plugins.ToastDemo"/>-->
<!--target是插件安装后的调用方法前缀 比如:cordova.plugins.ToastDemo.自己定义的方法-->
<!--自定义也可以,调用时:ToastDemo.自己定义方法-->
<clobbers target="ToastDemo"/>
</js-module>
<platform name="android">
<!--插件配置,target为插件安装时,cordova项目android环境配置文件的位置-->
<!--插件安装时会讲 config-file 标签中的内容添加到res/xml/config.xml中-->
<config-file parent="/*" target="res/xml/config.xml">
<!--name 为对应 www/Toast.js 文件中的调用名称-->
<feature name="ToastDemo">
<!--valud 为插件安装到项目中后 ToastDemo.Java文件的路径,包路径-->
<!--此处修改一下 ,将它改成通用的cordova插件的安装目录-->
<param name="android-package" value="org.apache.cordova.toastdemo.ToastDemo"/>
</feature>
</config-file>
<config-file parent="/*" target="AndroidManifest.xml"></config-file>
<!--src 为插件目录中java源文件路径,target-dir 为插件安装到项目中后源文件路径-->
<!--这里把 target-dir 修改和包路径一致-->
<source-file src="src/android/ToastDemo.java" target-dir="src/org/apache/cordova/toastdemo"/>
<!--这里引入你的第三方jar包 放到libs下-->
<source-file src="src/android/mtaJar.jar" target-dir="libs"/>
</platform>
</plugin>
接下来 修改ToastDemo.js文件
接下来 修改ToastDemo.java文件 (圈起来的是jar包中的方法应用)
这样就完毕了编写
2 我们要初始化插件 (因为你现在还没有 package.json)
进入 该插件目录下 npm init 一直回车就生成了
3 使用插件
进入cordova 项目中
cordova plugin add /d/CordovaProjectPlugins/plugins/ToastDemo --save
你会看到控制台有信息说 这个插件成功 install到你android中 那么恭喜你 成功了
4 调用 在vue文件中
完毕 如果帮到你 请点个赞 谢谢
用到的命令 总结:
给项目添加平台支持 :cordova platform add android
给项目添加第三方插件: cordova plugin add /Users/mac/cordovaProject/ToastDemo --save
删除项目第三方插件:cordova plugin remove cordova-plugin-toastdemo
打包: cordova build android
文章参考了:这位大神一部分 在加上我自己代码 也贴出来
https://www.cnblogs.com/VoiceOfDreams/p/11073447.html
遇到问题欢迎留言