我正在尝试使用launchmyapp插件在我的应用中打开另一个应用。我想打开mydeals://但我无法弄清楚我做错了什么。我把它添加到我的config.xml中。
<gap:plugin name="nl.x-services.plugins.launchmyapp">
<param name="URL_SCHEME" value="mydeals" />
</gap:plugin>
然后我使用它:var my_window = window.open('mydeals://', '_system');
来打开应用。我不确定参数名称或值是否错误。
答案 0 :(得分:0)
这是自定义applaunch插件。安装应用程序时它可以正常启动它直接启动,如果不是打开PlayStore
点击您的index.js
按钮启动应用代码
AppChecker是服务。
appcheker就是行动。
com.outfit7.mytalkingtomfree
是您要启动的应用包名称。
$(".appopenclass").on("click",function () {
cordova.exec(function(winParam) {},
function(error) {
utils.setAlertMsg("Plugin failed " + error);
},
"AppChecker",
"appchecker",
["com.outfit7.mytalkingtomfree"]);
});
项目 - &GT;水库&GT; XML-&GT; config.xml中
<feature name="AppChecker">
<param name="android-package" value="com.appview.openapp.AppChecker" />
</feature>
创建一个名为com.appview.openapp
的包,并创建新的类名AppChecker.java
AppChecker.Java
import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.json.JSONArray;
import org.json.JSONException;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.util.Log;
public class AppChecker extends CordovaPlugin {
@Override
public boolean execute(String action, JSONArray args,
CallbackContext callbackContext) throws JSONException {
if (action.equals("appchecker")) {
String message = args.getString(0);
this.appchecker(message, callbackContext);
return true;
}
return false;
}
private void appchecker(final String message, CallbackContext callbackContext) {
if (message != null && message.length() > 0) {
// callbackContext.success(message);
Log.i("test", "" + message);
// appInstalledOrNot(message);
cordova.getActivity().runOnUiThread(new Runnable() {
public void run() {
boolean installed = appInstalledOrNot(message);
if (installed) {
// This intent will help you to launch if the package is already
// installed
Intent LaunchIntent = cordova.getActivity().getPackageManager()
.getLaunchIntentForPackage(message);
cordova.getActivity().startActivity(LaunchIntent);
System.out.println("App already installed on your phone");
} else {
System.out.println("App is not installed on your phone");
try {
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + message));
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
cordova.getActivity().startActivity(i);
} catch (android.content.ActivityNotFoundException anfe) {
}
}
}
});
} else {
callbackContext.error("Expected one non-empty string argument.");
}
}
private boolean appInstalledOrNot(String uri) {
PackageManager pm = cordova.getActivity().getPackageManager();
boolean app_installed = false;
try {
pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
app_installed = true;
} catch (PackageManager.NameNotFoundException e) {
app_installed = false;
}
return app_installed;
}
}
答案 1 :(得分:0)
我认为你在这里尝试使用错误的插件。
据我了解,lanchmyapp可以帮助您注册您的应用,以便其他应用可以通过调用网址来调用它。
您似乎想要实现的是从您的应用中启动其他应用。为此,您应该查看WebIntent plugin。