Коммуникация между Java Android и JavaScript Phonegap?

Я полагаю, что возможно назвать методы Java из JavaScript (PhoneGap).

Кто-либо знает, как сделать это?? (Я знаю, как сделать это путем изменения исходного кода PhoneGap, но я избежал бы этого),

81
задан zorglub76 28 April 2010 в 08:15
поделиться

1 ответ

I finally made it work.

  • Создайте класс с методами, которые вы хотите использовать:

    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:

    
    

Примечание:

Как указано в комментарии, для Android версии 4.2 и выше, добавьте @JavascriptInterface к методу, к которому вы хотите получить доступ с вашей HTML страницы. Reference.

125
ответ дан 24 November 2019 в 09:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: