如何将launchmyapp插件与phonegap一起使用?

时间:2014-04-18 14:27:26

标签: android cordova plugins phonegap-plugins

我正在尝试使用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');来打开应用。我不确定参数名称或值是否错误。

2 个答案:

答案 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

相关问题