2014-04-18 2 views
0

launchmyapp 플러그인을 사용하여 내 앱에서 다른 앱을 열려고합니다. mydeals를 열고 싶습니다. // 그러나 내가 잘못하고있는 것을 파악할 수는 없습니다. 나는 이것을 config.xml에 추가했다. 그럼 난이 사용하고launchmyapp 플러그인을 phonegap과 함께 사용하려면 어떻게해야합니까?

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

<gap:plugin name="nl.x-services.plugins.launchmyapp"> 
: var my_window = window.open('mydeals://', '_system'); 앱을 엽니 다. param 이름이나 값이 잘못된 것인지 확실하지 않습니다.

+0

phonegap 빌드 또는 CLI를 사용하고 있습니까? – QuickFix

+0

내가 phonegap 빌드를 사용하고 있습니다 – Sdog

답변

0

이것은 맞춤식 박수 갈채 플러그인입니다. 이 응용 프로그램은이 directlly 응용 프로그램 코드

AppChecker이 서비스를 시작하는 버튼 클릭에

귀하의 index.js 개방 PLAYSTORE

이상인 경우 시작 설치 될 때 작동합니다. appcheker가 조치입니다. com.outfit7.mytalkingtomfree은 실행할 앱의 패키지 이름입니다.

$(".appopenclass").on("click",function() { 

     cordova.exec(function(winParam) {}, 
      function(error) { 
       utils.setAlertMsg("Plugin failed " + error); 
      }, 
      "AppChecker", 
      "appchecker", 
      ["com.outfit7.mytalkingtomfree"]); 

    }); 

프로젝트 -> 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

java 파일에 액세스 할 수 없도록 phonegap 빌드를 사용 중입니다 – Sdog

+0

시스템에 u가있는 안드로이드가 있습니다. 그렇다면 예를 들어 안드로이드 SDK가 있고 모든 파일을 만들고 수정하는 것보다 이 aswe에서 언급 –

+0

자바 코드없이 그냥 자바 스크립트에서 이것을 할 방법이 있습니까? – Sdog

0

잘못된 플러그인을 사용하려고합니다.

내가 이해하는 것처럼 lanchmyapp는 URL을 호출하여 다른 앱에서 호출 할 수 있도록 앱을 등록하는 데 도움을줍니다.

달성하려고하는 것으로 보이는 것은 앱에서 다른 앱을 실행하는 것입니다. 이를 위해서는 WebIntent plugin을 살펴 봐야합니다.

+0

응답 해 주셔서 감사합니다. 이제 내 목적을 위해 webintent 플러그인을 사용하려면 startActivity 메소드를 사용해야합니까? 어떻게 사용합니까? 열어야하는 앱 패키지는 com.access.access입니다. – Sdog

관련 문제