Я полагаю, что возможно назвать методы Java из JavaScript (PhoneGap).
Кто-либо знает, как сделать это?? (Я знаю, как сделать это путем изменения исходного кода PhoneGap, но я избежал бы этого),
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.