Cordova
1.创建项目
cordova create hello3 com.hello HelloWorld3
cordova create HelloGis com.hwq.gis
cd hello3.进入到项目
cordova platform add android 增加平台
cordova run android 运行项目===手打,复制跑不起来
2.新增插件
plugman create --name [插件名字] --plugin_id [插件id] --plug_version [插件版本号]
plugman create --name FirstPlugin --plugin_id cordova.plugin.first.plugin --plugin_version 1.0.0
cd FirstPlugin
plugman platform add --platform_name android
注:平台有 android、ios、windows
添加package.json 文件
初始化插件,在FirstPlugin插件目录下生成package.json
sudo plugman createpackagejson ./
(cd FirstPlugin到了目录下,./就是路径)
输入密码后,一直回车
3添加插件
到基于cordova的项目中,输入以下命令
cordova plugin add [插件路径]
cordova plugin add /Users/mac/Desktop/my/cordova/workplace/hello3/FirstPlugin
cordova plugin add /Users/mac/Desktop/my/cordova/workplace/ToastDemo/FirstPlugin
cordova plugin add /Users/mac/Desktop/my/cordova/workplace/HelloGis/FirstPlugin
如果有plugins目录
cd ../
cd plugins
npx cordova plugin add ../FirstPlugin/
移除插件
cordova plugin remove cordova.plugin.first.plugin
4.交互
FirstPlugin.java
if("javaShow".equals(action)) {
Toast.makeText(activity, "java show...", Toast.LENGTH_SHORT).show();
}
index.js
function bt1() {
cordova.plugins.FirstPlugin.javaShow();
}
cordova.plugins.FirstPlugin 这个根据plugin.xml里面的<clobbers target="cordova.plugins.FirstPlugin" />
,这边可以修改target
FirstPlugin.js. 把定义的方法暴露出来
exports.javaShow = function (arg0, success, error) {
exec(success, error, 'FirstPlugin', 'javaShow', [arg0]);
};
修改完插件,要移除然后新增,再运行项目
5.增加库
在插件src/android下新增arr,在插件的src/android下新建xxx.gradl文件,加入需要引入的包
dependencies {
//implementation 'com.android.support:support-v4:+'
compile 'com.android.support:support-v4:27.1.0'
implementation(name:'gis-sdk-release-v1.0-20220826', ext:'aar')
implementation(name:'sgmap-sdk-map-v3.2.1-20220817', ext:'aar')
implementation "com.google.code.gson:gson:2.8.2"
}
在插件plugin.xml下加入需要引入的包及.gradl文件路径,对应的包放入src/android下,需要新增的java文件也在此引入
<resource-file src="src/android/gis-sdk-release-v1.0-20220826.aar" target="libs/gis-sdk-release-v1.0-20220826.aar"/>
<resource-file src="src/android/sgmap-sdk-map-v3.2.1-20220817.aar" target="libs/sgmap-sdk-map-v3.2.1-20220817.aar"/>
<framework src="src/android/build.gradle" custom="true" type="gradleReference" />