欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:交互 架構(gòu) Title

柚子快報邀請碼778899分享:交互 架構(gòu) Title

http://yzkb.51969.com/

12345

我還需要設(shè)置WebSettings,WebViewClient和WebChromeClient,其他配置參考第一篇文章,這里就不過多闡述了

WebSettings webSettings = webView.getSettings();

webView.setWebChromeClient(new WebChromeClient());

webSettings.setJavaScriptEnabled(true)

webSettings.setJavaScriptCanOpenWindowsAutomatically(true);

webView.setWebViewClient(new myWebVliewClient());

12345

然后在WebClient的OnPageStarted中添加如下

webView.loadUrl(“javascript: alert(‘Native注入的JS’)”);

1

可以注意到我們上面的圖片的背景是白色的,其實我們load是http://www.baidu.com, 因為我們在onPageStarted中調(diào)用,當(dāng)時資源還沒有加載,所以背景是白色的,而且彈窗會阻塞資源的加載,不按取消頁面就無法繼續(xù)加載下去,會被阻塞在這里,所以對于注入的時機根據(jù)具體需求而定。

上面例子是非常簡單的JS,如果是復(fù)雜的JS文件我們又該如何處理呢,有以下方法,其中我將test.js文件放在了Assets文件夾下,代碼如下

InputStreamReader isr = null;

try {

isr = new InputStreamReader(this.getAssets().open(“test.js”), “UTF-8”);

BufferedReader bf = new BufferedReader(isr);

String content = “”;

StringBuilder sb = new StringBuilder();

while (content != null) {

content = bf.readLine();

if (content == null) {

break;

}

sb.append(content.trim());

}

bf.close();

wholeJS = sb.toString();

} catch (IOException e) {

e.printStackTrace();

}

123456789101112131415161718

其中wholeJS就是JS文件轉(zhuǎn)化而來的字符串,然后調(diào)用

webView.loadUrl("javascript: " + wholeJS);

1

就可以看到和之前一樣的效果。

方式2: 通過evaluateJavascript方法

相較于loadUrl,evaluateJavascript的優(yōu)勢在于異步加載,還可以將執(zhí)行JS代碼的結(jié)果帶回來,我們以下面一個小例子來說明。

我們在web頁面中聲明如下方法:

123456

然后我們注入js代碼調(diào)用這個函數(shù),并將121這個結(jié)果帶回來來,在onPageFinished中調(diào)用以下代碼

webView.evaluateJavascript(“getUID()”, new ValueCallback() {

@Override

public void onReceiveValue(String value) {

Log.d(“CALLBACK”, value);

}

});

123456

結(jié)果如下

JS調(diào)用Native

JS調(diào)用Native是最常用也是最重要的方法,在實現(xiàn)上有兩種思路,一種是攔截schema,有兩種方式攔截,一種是注冊接口。我們依然以一個例子取說明這個過程,也很簡單,我們load一個在本地的頁面,頁面上只有一個按鈕如下圖,按下這個按鈕去調(diào)用原生的Toast方法。

方式1:攔截URL schema

URL schema是一種請求格式,用攔截URL schema的方式我就需要自定義一個URL schema,如jsbridge://jsbridge://webview?&arg1=hello&arg2=world,我們的html頁面如下

Title

JS 調(diào)用Native

1234567891011121314151617181920212223242526272829303132

我們需要到WebViewClient的shouldOverrideUrl去攔截,并解析參數(shù),代碼如下

@Override

public boolean shouldOverrideUrlLoading(WebView webView, String s) {

Uri uri = Uri.parse(s);

Log.d(“test112”, s);

if(uri.getScheme().startsWith(“jsbridge”)) {

String arg1 = uri.getQueryParameter(“arg1”);

String arg2 = uri.getQueryParameter(“arg2”);

String s1 = “JS調(diào)用Native,參數(shù)1:”+arg1+“參數(shù)2:”+arg2;

Toast.makeText(MainActivity.this, s1, Toast.LENGTH_LONG).show();

}

return true;

}

123456789101112

最后的結(jié)果如下圖

自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進入阿里一直到現(xiàn)在。

深知大多數(shù)前端工程師,想要提升技能,往往是自己摸索成長或者是報班學(xué)習(xí),但對于培訓(xùn)機構(gòu)動則幾千的學(xué)費,著實壓力不小。自己不成體系的自學(xué)效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前!

因此收集整理了一份《2024年Web前端開發(fā)全套學(xué)習(xí)資料》,初衷也很簡單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時減輕大家的負(fù)擔(dān)。

既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗的小伙伴深入學(xué)習(xí)提升的進階課程,基本涵蓋了95%以上前端開發(fā)知識點,真正體系化!

由于文件比較大,這里只是將部分目錄截圖出來,每個節(jié)點里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實戰(zhàn)項目、講解視頻,并且會持續(xù)更新!

如果你覺得這些內(nèi)容對你有幫助,可以掃碼獲?。。。▊渥ⅲ呵岸耍?/p>

最后

分享一套阿里大牛整理的前端資料給大家,點擊前端校招面試題精編解析大全即可免費下載

?? 謝謝支持,喜歡的話別忘了 關(guān)注、點贊哦。

[外鏈圖片轉(zhuǎn)存中…(img-fsk7MHJT-1712235673505)]

由于文件比較大,這里只是將部分目錄截圖出來,每個節(jié)點里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實戰(zhàn)項目、講解視頻,并且會持續(xù)更新!

如果你覺得這些內(nèi)容對你有幫助,可以掃碼獲取?。。▊渥ⅲ呵岸耍?/p>

最后

分享一套阿里大牛整理的前端資料給大家,點擊前端校招面試題精編解析大全即可免費下載

?? 謝謝支持,喜歡的話別忘了 關(guān)注、點贊哦。

柚子快報邀請碼778899分享:交互 架構(gòu) Title

http://yzkb.51969.com/

好文鏈接

評論可見,查看隱藏內(nèi)容
大家都在看:

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/18984547.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄