config.xml文件
<!-- name只会在 js插件类的方法里使用-->
<feature name="alertHelper">
<!-- value 为oc插件类名-->
<param name="ios-package" value="alertHelper" />
</feature>
cordova_plugins.js文件
module.exports = [{
//id 应与js插件类的cordova.define("cordova-plugin-alertHelper.alertHelper", function(require, exports, module) {});保持一致,file为js插件目录
"id": "cordova-plugin-alertHelper.alertHelper",
"file": "plugins/cordova-plugin-alertHelper/www/AMAlertHelper.js",
"pluginId": "cordova-plugin-alertHelper",
"clobbers": [
// 为网页内调用方法时的前缀
"helper"
]
}
//,....
];
js插件类文件
cordova.define("cordova-plugin-alertHelper.alertHelper", function(require, exports, module) {
var exec = require("cordova/exec");
//定义一个对象,名字随意,与下边的保持一致即可
var AlertModel ={};
// alertAction为网页内调用的方法名
AlertModel.alertAction = function (success,fail,option) {
//alertHelper 为config.xml内设置的名字,即oc类名
// showAlertWithTitle为oc插件内的方法名
exec(success, fail, 'alertHelper', 'showAlertWithTitle', option);
};
module.exports = AlertModel;
});
网页响应方法
<!-- helper为 cordova_plugins.js中的clobbers内定义的,alertAction为js插件类定义的 -->
function action(){
helper.alertAction(alertSuccess,alertFailure,["JCS"]);
<!-- 正确错误回调-->
function alertSuccess(msg){
alert(msg);
}
function alertFailure(msg){
alert(msg);
}
}
cordova调用远端h5:config.xml文件内加入
<allow-navigation href="http://*/*" />
也可以设置自己需要的url,不必写成全部可用,若不设置,远端网页会跳转到safari.
然后在进入继承了CDVViewController的控制器之前,设置startPage属性,将要展示的交互网页urlStirng赋值给此属性.
更新: 2021-7-13
swift版插件写法:
@objc(SSNewPlugin) class NewPlugin: CDVPlugin {
override func pluginInitialize() {
//init
}
@objc func orientation(_ command: CDVInvokedUrlCommand) {
//do sth.
}
}
}