mirror of
https://github.com/lampaa/com.lampa.startapp.git
synced 2026-02-15 00:07:54 +08:00
upload new version
This commit is contained in:
@@ -25,6 +25,8 @@ import org.json.JSONException;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.ComponentName;
|
||||
import android.content.pm.PackageManager;
|
||||
|
||||
/**
|
||||
* This class provides access to vibration on the device.
|
||||
@@ -34,8 +36,7 @@ public class startApp extends CordovaPlugin {
|
||||
/**
|
||||
* Constructor.
|
||||
*/
|
||||
public startApp() {
|
||||
}
|
||||
public startApp() { }
|
||||
|
||||
/**
|
||||
* Executes the request and returns PluginResult.
|
||||
@@ -46,37 +47,57 @@ public class startApp extends CordovaPlugin {
|
||||
* @return True when the action was valid, false otherwise.
|
||||
*/
|
||||
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
|
||||
if (action.equals("startapp")) {
|
||||
this.startApp(args.getString(0));
|
||||
if (action.equals("start")) {
|
||||
this.start(args, callbackContext);
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Only alert and confirm are async.
|
||||
callbackContext.success();
|
||||
return true;
|
||||
else if(action.equals("check")) {
|
||||
this.check(
|
||||
args.getString(0),
|
||||
callbackContext,
|
||||
this.cordova.getActivity().getApplicationContext()
|
||||
);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// LOCAL METHODS
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
|
||||
/**
|
||||
* startApp
|
||||
*/
|
||||
public void startApp(String component) {
|
||||
Intent LaunchIntent = this.cordova.getActivity().getPackageManager().getLaunchIntentForPackage(component);
|
||||
/**
|
||||
* If you want to pass parameters:
|
||||
*/
|
||||
/**
|
||||
ComponentName comp = new ComponentName("com.component.name", "com.component.name.MainActivity");
|
||||
LaunchIntent.setComponent(comp);
|
||||
LaunchIntent.putExtra("product_id", 102);
|
||||
*/
|
||||
|
||||
this.cordova.getActivity().startActivity(LaunchIntent);
|
||||
public void start(JSONArray args, CallbackContext callback) {
|
||||
// args.getString(0) - com name
|
||||
// args.getString(1) - activity
|
||||
// args.getString(2) - key
|
||||
// args.getString(3) - value
|
||||
try {
|
||||
Intent LaunchIntent = this.cordova.getActivity().getPackageManager().getLaunchIntentForPackage(args.getString(0));
|
||||
|
||||
if(args.length() > 3) {
|
||||
ComponentName comp = new ComponentName(args.getString(0), args.getString(1));
|
||||
LaunchIntent.setComponent(comp);
|
||||
LaunchIntent.putExtra(args.getString(2), args.getString(3));
|
||||
}
|
||||
|
||||
this.cordova.getActivity().startActivity(LaunchIntent);
|
||||
callback.success();
|
||||
} catch (Exception e) {
|
||||
callback.error(e.toString());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* checkApp
|
||||
*/
|
||||
public void check(String component, CallbackContext callback, Context context) {
|
||||
PackageManager pm = context.getPackageManager();
|
||||
try {
|
||||
pm.getPackageInfo(component, PackageManager.GET_ACTIVITIES);
|
||||
callback.success();
|
||||
} catch (Exception e) {
|
||||
callback.error(e.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
35
test/main.js
35
test/main.js
@@ -21,5 +21,38 @@
|
||||
|
||||
|
||||
function init() {
|
||||
navigator.startApp('com.example.hello');
|
||||
/**
|
||||
* check the application is installed
|
||||
*/
|
||||
navigator.startApp.check('com.teaway.teamenu', function(message) { /* success */
|
||||
console.log(message); // => OK
|
||||
},
|
||||
function(error) { /* error */
|
||||
console.log('47', error);
|
||||
});
|
||||
|
||||
/**
|
||||
* start application without parameters
|
||||
*/
|
||||
navigator.startApp.start('com.teaway.teamenu', function(message) { /* success */
|
||||
console.log(message); // => OK
|
||||
},
|
||||
function(error) { /* error */
|
||||
console.log('47', error);
|
||||
});
|
||||
|
||||
/**
|
||||
* start application with parameters
|
||||
*/
|
||||
navigator.startApp.start([
|
||||
'com.teaway.teamenu', // applucation
|
||||
'com.teaway.teamenu.MainActivity', // activity
|
||||
'product_id', // key
|
||||
'102' // value
|
||||
], function(message) { /* success */
|
||||
console.log(message); // => OK
|
||||
},
|
||||
function(error) { /* error */
|
||||
console.log('47', error);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/*
|
||||
cordova.define("org.apache.cordova.startapp.startapp", function(require, exports, module) { /*
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
@@ -22,12 +22,17 @@
|
||||
var exec = require('cordova/exec');
|
||||
var platform = require('cordova/platform');
|
||||
|
||||
|
||||
/** Open a native alert dialog, with a customizable title and button text.
|
||||
*
|
||||
* @param {String} message app name
|
||||
* @param {Function} completeCallback The callback that is called when open app
|
||||
*/
|
||||
module.exports = function(message, completeCallback) {
|
||||
exec(completeCallback, null, "startApp", "startapp", [message]);
|
||||
}
|
||||
module.exports = {
|
||||
check: function(message, completeCallback, errorCallback) {
|
||||
exec(completeCallback, errorCallback, "startApp", "check", [message]);
|
||||
},
|
||||
start: function(message, completeCallback, errorCallback) {
|
||||
exec(completeCallback, errorCallback, "startApp", "start", (typeof message === 'string') ? [message] : message);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user