項目緣由須要自定義Cordova插件,下面把實現過程記錄以便未來查閱。
工程爲Eclipse下的Android工程,該工程已經引入Cordova。Cordova版本4.0.2。
一、定義插件類OpenAppPlugin,繼承CordovaPlugin覆寫execute方法,該方法實現調用第三方App功能。
public class OpenAppPlugin extends CordovaPlugin {
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if (action.equals("openThridPartyApp")) {
Activity activity = this.cordova.getActivity();
String pkg = (String)args.get(0);
PackageManager packageManager = activity.getPackageManager();
Intent intent = packageManager.getLaunchIntentForPackage(pkg);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_CLEAR_TOP) ;
activity.startActivity(intent);
}
return false;
}
}
二、配置config.xml文件,在res/xml文件夾中已有config.xml。
在配置文件widget節點下添加配置:
<feature name="OpenAppPlugin">
<param name="android-package" value="com.bf.launcher.OpenAppPlugin" />
</feature>
三、編寫插件js文件。
在assets/www/plugins下新建blue-air/openapp.js文件,內容以下:
cordova.define("com.blueair.plugin.openapp", function(require, exports, module) {
var exec = require('cordova/exec');
module.exports = {
openThridPartyApp : function(config) {
var successCallBack = function() {};
var errorCallback = function() {};
exec(successCallBack, errorCallback, 'BFPlugin', 'openThridPartyApp', [config]);
}
};
});
四、在cordova_plugins.js註冊插件。
在assets/www/cordova_plugins.js中module.exports中添加openapp.js的引用。添加以下代碼:
{
"file": "plugins/blue-air/openapp.js",
"id": "com.blueair.plugin.openapp",
"clobbers": [
"blueAir.plugins.openapp"
]
}
五、在頁面中調用插件。
在頁面中調用插件的方式以下:
function openApp(pageageName){
blueAir.plugins.openapp.openThridPartyApp(pageageName);
}android