第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在JAVASCRIPT調(diào)用Android JAVA函數(shù)?

如何在JAVASCRIPT調(diào)用Android JAVA函數(shù)?

RISEBY 2019-02-07 11:07:48
如何在JAVASCRIPT調(diào)用Android JAVA函數(shù)
查看完整描述

4 回答

?
慕少森

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊

你好:
一、網(wǎng)頁的JS代碼調(diào)用ANDROID中JAVA代碼的方法
在網(wǎng)頁中調(diào)用java代碼、需要在webview控件中添加javascriptInterface
contentWebView = (WebView) findViewById(R.id.webview);
//啟用javascript
contentWebView.getSettings().setJavaScriptEnabled(true);
contentWebView.addJavascriptInterface(this, "js對(duì)象名");

在Activity中定義一個(gè)要被js調(diào)用的方法、src為js傳遞過來的參數(shù)、如果沒有不傳也可以
public void jsFunction(final String str) {
Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
runOnUiThread(new Runnable() {
@Override
public void run() {
//在里對(duì)Android應(yīng)用的UI進(jìn)行處理
}
});
}

在網(wǎng)頁中、只需要像調(diào)用js方法一樣、進(jìn)行調(diào)用就可以
<a onClick="window.js對(duì)象名.jsFunction(′hello world′)" >
點(diǎn)擊調(diào)用java代碼并傳遞參數(shù)
</a>

二、ANDROID中JAVA代碼調(diào)用網(wǎng)頁的JS代碼的方法

Java代碼調(diào)用js并傳參其實(shí)是通過WebView的loadUrl方法去調(diào)用的、只是參數(shù)url的寫法不一樣而已

// 無參數(shù)調(diào)用
contentWebView.loadUrl("javascript:javacalljs()");
// 傳遞參數(shù)調(diào)用
contentWebView.loadUrl("javascript:javacalljswithargs("
+ "′hello world′" + ")");

三、JAVA和JS交互注意事項(xiàng)
1、Java 調(diào)用 js 里面的函數(shù)、效率并不是很高、估計(jì)要200ms左右吧、做交互性很強(qiáng)的事情、這種速度很難讓人接受、而js去調(diào)Java的方法、速度很快、50ms左右、所以盡量用js調(diào)用Java方法
2、Java 調(diào)用 js 的函數(shù)、沒有返回值、調(diào)用了就控制不到了
3、Js 調(diào)用 Java 的方法、返回值如果是字符串、你會(huì)發(fā)現(xiàn)這個(gè)字符串是 native 的、轉(zhuǎn)成 locale 的才能正常使用、使用 toLocaleString() 函數(shù)就可以了、不過這個(gè)函數(shù)的速度并不快、轉(zhuǎn)化的字符串如果很多、將會(huì)很耗費(fèi)時(shí)間
4、網(wǎng)頁中盡量不要使用jQuery、執(zhí)行起來需要5-6秒、最好使用原生的js寫業(yè)務(wù)腳本、以提升加載速度、改善用戶體驗(yàn)



查看完整回答
反對(duì) 回復(fù) 2019-03-15
?
蝴蝶不菲

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊

js不能直接調(diào)用java的函數(shù),你可以通過ajax的方式接收java函數(shù)的返回值來讓js使用

查看完整回答
反對(duì) 回復(fù) 2019-03-15
  • 4 回答
  • 0 關(guān)注
  • 862 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)