最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

android studio WebView的常用方法,包含網(wǎng)頁(yè)端調(diào)用java,java調(diào)用網(wǎng)頁(yè),網(wǎng)頁(yè)注入介紹

2023-06-13 15:02 作者:翼618  | 我要投稿

跳到APP上的瀏覽器上加載,就是跳出到APP外部加載


java代碼部分(可以放在onCreate下)

webView = (WebView) findViewById(R.id.wv_main);

//WebView加載web資源

webView.loadUrl("http://baidu.com");//需要加載的網(wǎng)頁(yè)

WebSettings settings = webView.getSettings();

settings.setJavaScriptEnabled(true);


xml 內(nèi)容(只要ID對(duì)的上,其他隨便調(diào))

<WebView

? ? android:id="@+id/wv_main"

? ? android:layout_width="match_parent"

? ? android:layout_height="match_parent"

? ? android:layout_centerHorizontal="true"

? ? android:layout_centerVertical="true" />

-----------------------------分割線--------------------------------------------

在app內(nèi)部頁(yè)面加載

(可以直接把? ??initWebView()? ?放在onCreate下)

private void initWebView(){

webView = (WebView) findViewById(R.id.wv_main);

WebSettings settings = webView.getSettings();

settings.setJavaScriptEnabled(true);

//WebView加載web資源

webView.loadUrl("http://baidu.com");

//覆蓋WebView默認(rèn)使用第三方或系統(tǒng)默認(rèn)瀏覽器打開(kāi)網(wǎng)頁(yè)的行為,使網(wǎng)頁(yè)用WebView打開(kāi)

webView.setWebViewClient(new WebViewClient(){

? ?@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

? ? // TODO Auto-generated method stub

? ? ? ?//返回值是true的時(shí)候控制去WebView打開(kāi),為false調(diào)用系統(tǒng)瀏覽器或第三方瀏覽器

? ? ?view.loadUrl(url);

? ? return true;

}});}


-----------------------------分割線--------------------------------------------

這里寫的是一個(gè) 網(wǎng)頁(yè)加載完畢后?

將網(wǎng)頁(yè)上一個(gè)id 為 MyName的 模塊 隱藏掉 的示例參考代碼


具體看 loadUrl里面執(zhí)行的代碼? 有些設(shè)置記得要配置 否則會(huì)無(wú)效 而且不報(bào)錯(cuò)

重點(diǎn)是添加加載完后,往網(wǎng)頁(yè)添加一個(gè)myFunction并且執(zhí)行他,并且拿到對(duì)應(yīng)模塊的ElementById才能執(zhí)行有效,否則JS找不到對(duì)應(yīng)ID函數(shù)執(zhí)行無(wú)效,這一塊可以跟網(wǎng)頁(yè)端協(xié)商添加一個(gè)ID


?@Override

? ? public void onActivityCreated(Bundle savedInstanceState) {

? ? ? ? setListener();

? ? ? ? webSettings = webview.getSettings();

? ? ? ? webSettings.setJavaScriptEnabled(true);

? ? ? ? webSettings.setUseWideViewPort(true);

? ? ? ? webSettings.setLoadWithOverviewMode(true);

? ? ? ? webview.setWebViewClient(new MyWebViewClient());


? ? ? ? webview.setWebViewClient(new WebViewClient() {

? ? ? ? ? ? public boolean shouldOverrideUrlLoading(WebView view, String url) {

? ? ? ? ? ? ? ? view.loadUrl(url);

? ? ? ? ? ? ? ? return true;

? ? ? ? ? ? }

? ? ? ? });

? ? ? ? // 啟用javascript

? ? ? ? webview.getSettings().setJavaScriptEnabled(true);

? ? ? ? webview.setWebViewClient(new WebClineView() {? //網(wǎng)頁(yè)加載完畢后 回調(diào)

? ? ? ? ? ? @Override

? ? ? ? ? ? public void onPageFinished(WebView view, String url) {

? ? ? ? ? ? ? ? super.onPageFinished(view, url);

? ? ? ? ? ? ? ? webview.loadUrl("javascript:function myFunction(){

? ? ? ? ? ? ? x=document.getElementById(\"ElementById\").style.display=\"none\";}"); //把這個(gè)js加載進(jìn)網(wǎng)頁(yè)

? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? webview.loadUrl("javascript:myFunction()");//執(zhí)行這個(gè)方法


? ? ? ? ? ? ? ? Log.d("Tab1", webview.getUrl());

? ? ? ? ? ? }

? ? ? ? });

? ? ? ? super.onActivityCreated(savedInstanceState);

? ? }?

-----------------------------分割線--------------------------------------------

JS調(diào)用Java方法(網(wǎng)頁(yè)端調(diào)用java方面的代碼)


這里給出了網(wǎng)頁(yè)端和java的代碼,核心也就是相互調(diào)用

要用的話直接娶對(duì)應(yīng)的方法函數(shù)就好,留意名字ID對(duì)上一般問(wèn)題不大,換成線上網(wǎng)頁(yè)也可以,如果害怕出現(xiàn)溝通上的問(wèn)題,可以按照如下配置在APP端自行調(diào)試后,再和網(wǎng)頁(yè)端溝通


網(wǎng)頁(yè)內(nèi)容

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>標(biāo)題設(shè)置</title>


? ? <script>

? ? ? ? ?function callAndroid(){

? ? ? ? // 由于對(duì)象映射,所以調(diào)用test對(duì)象等于調(diào)用Android映射的對(duì)象

? ? ? ? ? ? test.hello("js調(diào)用了android中的hello方法");

? ? ? ? ?}

? ? ? </script>

</head>


<body>

//點(diǎn)擊按鈕則調(diào)用callAndroid函數(shù)

<button type="button" id="button1" onclick="callAndroid()"></button>


</body>

</html>



java內(nèi)容


? ? /** 可以內(nèi)部類 做操作 搞不懂就直接新建一個(gè)就好了 */

public class AndroidtoJs extends Object {


? ? // 定義JS需要調(diào)用的方法

? ? // 被JS調(diào)用的方法必須加入@JavascriptInterface注解

? ? @JavascriptInterface

? ? public void hello(String msg) {

? ? ? ? System.out.println("JS調(diào)用了Android的hello方法");

? ? }

}



webview設(shè)置


? ? private void setWebView(){

? ? ? ? webView = (WebView) findViewById(R.id.wv_main);

? ? ? ? WebSettings webSettings = webView.getSettings();


? ? ? ? // 設(shè)置與Js交互的權(quán)限

? ? ? ? webSettings.setJavaScriptEnabled(true);?


? ? ? ? // 通過(guò)addJavascriptInterface()將Java對(duì)象映射到JS對(duì)象

? ? ? ? //參數(shù)1:Javascript對(duì)象名

? ? ? ? //參數(shù)2:Java對(duì)象名

? ? ? ? webView.addJavascriptInterface(new AndroidtoJs(), "test");//AndroidtoJS類對(duì)象映射到j(luò)s的test對(duì)象

? ? ? ? // 加載JS代碼

? ? ? ? // 格式規(guī)定為:file:///android_asset/文件名.html.

? ? ? ? webView.loadUrl("file:///android_asset/tttt.html");

? ? }




-----------------------------分割線--------------------------------------------

HTML 另外一種調(diào)用方法

直接用HTML的樣式使用


Html.fromHtml("<font col or=#333333 >" + "題目快速導(dǎo)航:" + "</font>"? +

? ? ? ? ? ? ? ? "<font color=#03a9f4 >" +"(共"+ requestData.size() +"題)"+ "</font>")


android studio WebView的常用方法,包含網(wǎng)頁(yè)端調(diào)用java,java調(diào)用網(wǎng)頁(yè),網(wǎng)頁(yè)注入介紹的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
凤阳县| 称多县| 扎赉特旗| 丰原市| 丹巴县| 连江县| 梁平县| 临猗县| 铜鼓县| 德清县| 竹北市| 永昌县| 阳泉市| 南陵县| 秦皇岛市| 临夏市| 宁德市| 微山县| 烟台市| 贵南县| 富川| 金沙县| 晋江市| 康保县| 涞水县| 吉首市| 河东区| 莎车县| 桐庐县| 富阳市| 桂阳县| 卓资县| 嘉善县| 成武县| 岳阳市| 资中县| 安吉县| 绿春县| 沐川县| 闻喜县| 台安县|