mirror of
https://github.com/lampaa/com.lampa.startapp.git
synced 2024-10-06 15:52:06 +08:00
updates
This commit is contained in:
parent
c1ed81dad4
commit
3c869f7730
@ -30,6 +30,7 @@ public class startApp extends CordovaPlugin {
|
||||
|
||||
public static final String TAG = "startApp";
|
||||
public startApp() { }
|
||||
private boolean NO_PARSE_INTENT_VALS = false;
|
||||
|
||||
/**
|
||||
* Executes the request and returns PluginResult.
|
||||
@ -37,7 +38,7 @@ public class startApp extends CordovaPlugin {
|
||||
* @param action The action to execute.
|
||||
* @param args JSONArray of arguments for the plugin.
|
||||
* @param callbackContext The callback context used when calling back into JavaScript.
|
||||
* @return True when the action was valid, false otherwise.
|
||||
* @return Always return true.
|
||||
*/
|
||||
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
|
||||
if (action.equals("start")) {
|
||||
@ -56,9 +57,7 @@ public class startApp extends CordovaPlugin {
|
||||
return true;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// LOCAL METHODS
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* startApp
|
||||
*/
|
||||
@ -76,12 +75,40 @@ public class startApp extends CordovaPlugin {
|
||||
int i;
|
||||
|
||||
try {
|
||||
|
||||
|
||||
if (args.get(0) instanceof JSONObject) {
|
||||
params = args.getJSONObject(0);
|
||||
|
||||
/**
|
||||
* disable parsing intent values
|
||||
*/
|
||||
if(params.has("no_parse")) {
|
||||
NO_PARSE_INTENT_VALS = true;
|
||||
}
|
||||
|
||||
LaunchIntent = new Intent();
|
||||
/**
|
||||
* set application
|
||||
* http://developer.android.com/reference/android/content/Intent.html(java.lang.String)
|
||||
*/
|
||||
if(params.has("application")) {
|
||||
PackageManager manager = cordova.getActivity().getApplicationContext().getPackageManager();
|
||||
LaunchIntent = manager.getLaunchIntentForPackage(params.getString("application"));
|
||||
|
||||
if (LaunchIntent == null) {
|
||||
callback.error("Application \""+ params.getString("application") +"\" not found!");
|
||||
return;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* set application
|
||||
* http://developer.android.com/reference/android/content/Intent.html (java.lang.String)
|
||||
*/
|
||||
else if(params.has("intent")) {
|
||||
LaunchIntent = new Intent(params.getString("intent"));
|
||||
}
|
||||
else {
|
||||
LaunchIntent = new Intent();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set package
|
||||
@ -299,14 +326,13 @@ public class startApp extends CordovaPlugin {
|
||||
}
|
||||
|
||||
/**
|
||||
* static functions
|
||||
* functions
|
||||
*/
|
||||
static String parseExtraName(String extraName) {
|
||||
private String parseExtraName(String extraName) {
|
||||
String parseIntentExtra = extraName;
|
||||
|
||||
try {
|
||||
parseIntentExtra = getIntentValueString(extraName);
|
||||
Log.i(TAG, parseIntentExtra);
|
||||
}
|
||||
catch(NoSuchFieldException e) {
|
||||
parseIntentExtra = extraName;
|
||||
@ -321,14 +347,19 @@ public class startApp extends CordovaPlugin {
|
||||
return parseIntentExtra;
|
||||
}
|
||||
|
||||
static String getIntentValueString(String flag) throws NoSuchFieldException, IllegalAccessException {
|
||||
private String getIntentValueString(String flag) throws NoSuchFieldException, IllegalAccessException {
|
||||
|
||||
if(NO_PARSE_INTENT_VALS) {
|
||||
return flag;
|
||||
}
|
||||
|
||||
Field field = Intent.class.getDeclaredField(flag);
|
||||
field.setAccessible(true);
|
||||
|
||||
return (String) field.get(null);
|
||||
}
|
||||
|
||||
static int getIntentValue(String flag) throws NoSuchFieldException, IllegalAccessException {
|
||||
private int getIntentValue(String flag) throws NoSuchFieldException, IllegalAccessException {
|
||||
Field field = Intent.class.getDeclaredField(flag);
|
||||
field.setAccessible(true);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user