以獲取到執行結果。
2. H5調用Android
H5調用Android的方式有兩種:通過WebView的addJavascriptInterface()方法和shouldOverrideUrlLoading()方法。
(1)addJavascriptInterface()方法
addJavascriptInterface()方法可以在H5頁面中直接調用Android程序中的Java代碼。比如,Android程序中需要提供一個Java方法給H5頁面調用時,可以使用如下代碼:
“`
webView.addJavascriptInterface(new Object() {
@JavascriptInterface
public void showToast(String message) {
Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show();
}
}, “android”);
“`
上述代碼中,showToast()是Android程序中的一個Java方法,它可以彈出一個Toast提示,@JavascriptInterface注解表示該方法可以在H5頁面中被調用,androapp開發平臺id是H5頁面中調用Java方法的對象名。
在H5頁面中調用該Java方法時,可以使用如下代碼:
“`
android.showToast(“Hello World!”);
“`
上述代碼中,android是在addJavascriptInterface()方法中定義的對象名,showToast()是在Android程序中定義的Java方法名,”網站轉換成appHello World!”是傳遞給Java方法的參數。
(2)shouldOverrideUrlLoading()方法
shouldOverrideUrlLoading()方法可以在H5頁面中通過URL方式調用Android程序中的Java代碼。比如,Android程序中需要提供一個Java方法給H5頁面調用時,可以使用如下代碼:
“`
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.startsWith(“android://showToast/”)) {
String message = url.substring(“android://showToast/”.length());
Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show();
return true;
}
return super.shouldOverrideUrlLoading(view, url);
}
});
“`
上述代碼中,shouldOverrideUrlLoading()方法中通過判斷URL的前綴來確定調用的Java方法,android://showToast/是URL的前綴,showToast()是Android程序中定義的Java方法名,message是URL中傳遞的參數。
在H5頁面中調用該Java方法時,可以使用如下URL:
“`
android://showToast/Hello World!
“`
上述URL中,android://showToast/是URL的前綴,showToast()是Android程序中定義的Java方法名,”Hello World!”是傳遞給Java方法的參數。
三、總結
Android與H5交互是一種常見的技術手段,它通過WebView組件實現數據和功能的共享,增強了應用程序的交互性和用戶體驗。Android調用H5和H5調用Android的方式分別有兩種,開發人員可以根據具體需求選擇適合的方式實現交互。