1. ホーム
  2. android

[解決済み] AndroidのJavaとPhonegapのJavascriptの間の通信?

2023-07-13 01:55:51

質問

PhoneGapの)JavascriptからJavaのメソッドを呼び出すことは可能だと思うのですが。

どなたかその方法をご存知でしょうか?(PhoneGapのソースコードを変更することで行う方法を知っていますが、それは避けたいと思います)

どのように解決するのですか?

やっとうまくいきました。

  • 使いたいメソッドを持つクラスを作成します。

    public class MyClass {
      private WebView mAppView;
      private DroidGap mGap;
    
      public MyClass(DroidGap gap, WebView view)
      {
        mAppView = view;
        mGap = gap;
      }
    
      public String getTelephoneNumber(){
        TelephonyManager tm = 
          (TelephonyManager) mGap.getSystemService(Context.TELEPHONY_SERVICE);
        String number = tm.getLine1Number();
        return number;
      }
    }
    
    
  • メインアクティビティで、このクラスのJavascriptインターフェイスを追加します。

    public class Main extends DroidGap
    {
        private MyClass mc;
    
        @Override
        public void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            super.init();
    
            mc = new MyClass(this, appView);
            appView.addJavascriptInterface(mc, "MyCls");
    
            super.loadUrl(getString(R.string.url));
        }
    }
    
    
  • Javascriptでwindow.MyClsのメソッドを呼び出します。

    <script>
      $(function(){
        $("#phone").text("My telephone number is: " + 
                window.MyCls.getTelephoneNumber());
      });
    </script>
    
    

注意してください。

コメントにもあるように、Androidバージョン4.2以上の場合、Androidにインストールする際に @JavascriptInterface を、HTMLページからアクセスしたいメソッドに追加してください。 参照 .