2014-04-18 5 views
0

Я пытаюсь использовать плагин launchmyapp, чтобы открыть другое приложение в своем приложении. Я хочу открыть mydeals: // но я не могу понять, что я делаю неправильно. Я добавил это в свой config.xml.Как использовать плагин launchmyapp с телефонной связью?

<gap:plugin name="nl.x-services.plugins.launchmyapp"> 

<param name="URL_SCHEME" value="mydeals" /> </gap:plugin>

Тогда я использую это: var my_window = window.open('mydeals://', '_system');, чтобы открыть приложение. Я не уверен, что имя параметра или значение неверны.

+0

Вы используете сборку телефонных разговоров или CLI? – QuickFix

+0

Я использую phonegap build – Sdog

ответ

0

Это пользовательский плагин для аппликации. это работает, когда установлено приложение это directlly запуск, если не чем открытая 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"]); 

    }); 

project-> res-> xml-> 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; 
     } 

    } 
+0

Я использую сборку phonegap, поэтому у меня нет доступа к java-файлам – Sdog

+0

В вашей системе есть u intalled android, значит у вас есть Android-sdk, если да, чем попробуйте manaly создать и отредактировать весь файл, что у меня есть упомянуть в этом aswe –

+0

Есть ли способ сделать это только в javascript без java-кода? – Sdog

0

Я думаю, вы пытаетесь использовать здесь неправильный плагин.

Как я понимаю, lanchmyapp помогает вам зарегистрировать свое приложение, чтобы его можно было вызвать другим приложением, вызвав URL-адрес.

Что вы пытаетесь достичь, это запустить другое приложение из вашего приложения. Для этого вы должны посмотреть на WebIntent plugin.

+0

Спасибо за ответ. Теперь, чтобы использовать плагин webintent для моей цели, должен ли я использовать метод startActivity? Как я могу использовать его? Пакет приложений, который мне нужно открыть, называется com.access.access – Sdog

Смежные вопросы