以獲取到執行結果。

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的方式分別有兩種,開發人員可以根據具體需求選擇適合的方式實現交互。

未經允許不得轉載:亦門 » android 與h5交互怎么實現的?

相關推薦