Communication between Android Java and Phonegap Javascript?

I believe that it's possible to call Java methods from (PhoneGap) Javascript.

Anyone knows how to do that?? (I know how to do it by changing the source code of PhoneGap, but I'd avoid that)

up vote 72 down vote accepted

I finally made it work.

  • Create a class with methods you want to use:

    publicclassMyClass{privateWebView mAppView;privateDroidGap mGap;publicMyClass(DroidGap gap,WebView view){
        mAppView = view;
        mGap = gap;}publicString getTelephoneNumber(){TelephonyManager tm =(TelephonyManager) mGap.getSystemService(Context.TELEPHONY_SERVICE);String number = tm.getLine1Number();return number;}}
  • In your main activity add a Javascript interface for this class:

    publicclassMainextendsDroidGap{privateMyClass mc;@Overridepublicvoid onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);super.init();
    
            mc =newMyClass(this, appView);
            appView.addJavascriptInterface(mc,"MyCls");super.loadUrl(getString(R.string.url));}}
  • In Javascript call window.MyCls methods:

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

猜你喜欢

转载自squall140.iteye.com/blog/1923513
今日推荐