之前写过两篇cordova自定义插件的文章,都是没使用到第三方库,也没有提供用户自定义配置变量,这篇文章主要就来处理这些问题。
例子是用的cordova-plugin-wechat这个插件
一、动态改变插件参数变量
在正式开始之前先补充个知识点:
1,在安卓gradle里面有很多个控制变量,比如cdvBuildMultipleApks之类的,怎么来的呢
首先创建一个.build文件比如:config.build文件,
然后在里面定义变量如:
ext {
minSdkVersion = 14
targetSdkVersion = 23
compileSdkVersion = 23
}
也可以直接写为ext.cdvBuildMultipleApks,ext.cdvVersionCodeForceAbiDigit,ext.cdvMinSdkVersion
ext的意思是对外提供变量
我们在build.gradle(app)在中使用的cdvBuildMultipleApks可能来自于build.gradle(project)中定义,也可能来自于其他的.gradle文件,在build.gradle(app)中使用时需要引入(build.gradle(project)的除外)如:apply from "../config.gradle"
2,安卓中config.xml文件中插件的配置举例(cordova-plugin-crosswalk-webview插件):
<plugin name="cordova-plugin-crosswalk-webview" spec="^2.4.0">
<variable name="XWALK_VERSION" value="23+" />
<variable name="XWALK_LITEVERSION" value="xwalk_core_library_canary:17+" />
<variable name="XWALK_COMMANDLINE" value="--disable-pull-to-refresh-effect" />
<variable name="XWALK_MODE" value="embedded" />
<variable name="XWALK_MULTIPLEAPK" value="false" />
</plugin>
variable中name对应于插件里面的plugin.xml中$XWALK_VERSION",$XWALK_LITEVERSION,$XWALK_COMMANDLINE,$XWALK_MODE,$XWALK_MULTIPLEAPK:
在插件的plugin.xml中通过上面的方法可以获取到config.xml中插件的配置value
3,安卓中config.xml里面可以写preference开头的标签文件,如:
<preference name="StatusBarStyle" value="default" />
然后在android中的.java文件和ios中的.m文件里面可以获取到并且配置。
现在我们正式开始,以cordova-plugin-wechat这个插件举例:
plugin.xml配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
xmlns:rim="http://www.blackberry.com/ns/widgets"
xmlns:android="http://schemas.android.com/apk/res/android"
id="cordova-plugin-wechat"
version="2.1.0">
<name>Wechat</name>
<description>A cordova plugin, a JS version of Wechat SDK</description>
<license>MIT</license>
<keywords>cordova,wechat,weixin,share</keywords>
<repo>https://github.com/xu-li/cordova-plugin-wechat.git</repo>
<issue>https://github.com/xu-li/cordova-plugin-wechat/issues</issue>
<!-- add this to your config.xml -->
<!-