Android webview加載H5方法詳細(xì)介紹
這篇文章主要闡述3個(gè)知識(shí)點(diǎn)
- 安卓APP 怎么用webview加載H5
- H5怎么調(diào)用安卓定義的方法
- 安卓怎么調(diào)用H5定義的方法
1,安卓APP 怎么用webview加載H5
安卓端定義個(gè)webview xml 頁(yè)面,代碼如下所示:
<?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/web_view_id"
android:layout_width="match_parent"
android:layout_height="match_parent">
</WebView>之后再對(duì)webview 實(shí)例進(jìn)行設(shè)置,用loadUrl 方法加載H5 路徑即可。代碼如下:
webView = (WebView) view.findViewById(R.id.web_view_id);
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
WebChromeClient webChromeClient = new WebChromeClient();
webView.setWebChromeClient(webChromeClient);
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
settings.setBuiltInZoomControls(true);
settings.setSupportZoom(true);
settings.setDefaultTextEncodingName("UTF-8");
settings.setJavaScriptCanOpenWindowsAutomatically(true);
//String _url = "http://xxx.xxx.xxx/link/index.html#/home/index"; //服務(wù)器地址
String _url = "file:android_asset/dist/index.html#/home/index"; //本地地址
webView.loadUrl(_url);不出意外的話會(huì)看到加載的H5頁(yè)面了。
2,H5怎么調(diào)用安卓定義的方法
首先定義一個(gè)類,寫上供H5調(diào)用的方法,注意這個(gè)方法要用@JavascriptInterface修飾,代碼如下所示:
public class Mine {
private Context context;
public Mine(Context _context){
this.context = _context;
}
@JavascriptInterface
public void loginOut(){
((MainActivity) context).loginOut();
}
}然后注冊(cè)這個(gè)類,如下所示:
webView.addJavascriptInterface(new Mine(this.getActivity()), "mineInterface");
這樣安卓端就寫好了。接下來(lái)就是H5端調(diào)用了。
window.mineInterface.loginOut();
H5端直接這么調(diào)用就可以了。
如果js想傳遞json對(duì)象參數(shù)給安卓端怎么辦,不要直接寫json對(duì)象,要轉(zhuǎn)換為json字符串,代碼如下:
window.mineInterface.loginOutTest(JSON.stringify({
title: "iot",
name: "iot"
}));安卓端接收如下:
@JavascriptInterface
public void loginOutTest(String params){
Log.d(AppYunlanLink.TAG, "test: " + params);
}3,安卓怎么調(diào)用H5定義的方法
H5 我是用的vue 框架,方法寫在了頁(yè)面內(nèi),如下所示:
created() {
window.setUserInfo = this.setUserInfo; //android app 會(huì)調(diào)用此方法
},
methods: {
setUserInfo(userInfo) {
const _userInfo = JSON.parse(userInfo);
this.userName = _userInfo.username;
this.avatar = _userInfo.avatar;
}
},注意方法一定要掛載到window對(duì)象上。安卓端怎么調(diào)用呢?
//調(diào)用html5 頁(yè)面中的方法,帶JSONObject類型參數(shù)
public void loadWebViewFuncWithJSON(String funcName, JSONObject value) {
webView.post(new Runnable() {
@Override
public void run() {
String _url = "javascript:" + funcName + "('" + value + "')";
Log.d(AppYunlanLink.TAG, "value is: " + value);
webView.loadUrl(_url);
}
});
}
fg4.loadWebViewFuncWithJSON("setUserInfo", info);這是帶有參數(shù)的調(diào)用,安卓端是JSONObject類型的,H5端接收的是json字符串。不帶參數(shù)的調(diào)用更簡(jiǎn)單了,如下:
//調(diào)用html5 頁(yè)面中的方法
public void loadWebViewFunc(String funcName) {
String _url = "javascript:" + funcName + "()";
webView.loadUrl(_url);
}到此這篇關(guān)于Android webview加載H5方法詳細(xì)介紹的文章就介紹到這了,更多相關(guān)Android加載H5內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android使用Kotlin實(shí)現(xiàn)多節(jié)點(diǎn)進(jìn)度條
這篇文章主要為大家詳細(xì)介紹了Android使用Kotlin實(shí)現(xiàn)多節(jié)點(diǎn)進(jìn)度條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03
Flutter應(yīng)用集成極光推送的實(shí)現(xiàn)示例
這篇文章主要介紹了Flutter應(yīng)用集成極光推送的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
android app在后臺(tái)運(yùn)行彈出彈窗
這篇文章主要為大家介紹了android app在后臺(tái)運(yùn)行彈出彈窗,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
Android實(shí)現(xiàn)按鈕點(diǎn)擊事件的三種方法總結(jié)
Button是程序用于和用戶進(jìn)行交互的一個(gè)重要控件。既然有Button,那肯定有onClick方法,下面就教大家三種實(shí)現(xiàn)點(diǎn)擊事件的方法,感興趣的可以了解一下2022-04-04
android中view手勢(shì)滑動(dòng)沖突的解決方法
本篇文章主要介紹了android中view手勢(shì)滑動(dòng)沖突的解決方法,主要解決方法有兩種,外部和內(nèi)部攔截。有需要的可以參考下。2016-11-11
Android View教程之自定義驗(yàn)證碼輸入框效果
這篇文章主要給大家介紹了關(guān)于Android View教程之自定義驗(yàn)證碼輸入框效果的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)各位Android開(kāi)發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
Android編程之?dāng)?shù)據(jù)庫(kù)Sql編程實(shí)例分析
這篇文章主要介紹了Android編程之?dāng)?shù)據(jù)庫(kù)Sql編程,實(shí)例分析了Android操作Sqlite數(shù)據(jù)庫(kù)的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04

