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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

【金秋打卡】第二十一天 android與webView的js交互

標(biāo)簽:
Android JavaScript

第一模块:

课程名称:android与webView的js交互

章节:1-1~4-1

讲师名称:西门老舅

第二模块:

1.  webView调用java方法

允许webView加载js

WebView.getSettings().setJavaScriptEnabled(true);

编写js接口类

 给webView添加js接口

WebView.addJavascriptInterface(obj,name);

注意:js交互中常见的一些错误

1.      js接口的回调方法中throw exception

2.      Web端不进行对象存在判断

3.      传递参数类型不一致(尤其是数组和对象)

4.      字符串类型参数为空时传递undefined

第三模块:

webView.addJavaScriptInterface(new Object(){xxx}, "xxx");
// 可以使用WebView控件执行JavaScript脚本,并且可以在JavaScript中执行Java代码。要想让WebView控件执行JavaScript,需要调用WebSettings.setJavaScriptEnabled方法:
WebView webView = (WebView)findViewById(R.id.webview)
WebSettings webSettings = webView.getSettings()
//设置WebView支持JavaScript
webSettings.setJavaScriptEnabled(true)
webView.setWebChromeClient(new WebChromeClient())
// JavaScript调用Java方法需要使用WebView.addJavascriptInterface方法设置JavaScript调用的Java方法:
webView.addJavascriptInterface(new Object()
{
    public String process(String value)
    {
        return result;
    }}, "demo");
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>测试</title>
    <script type="text/javascript">
        function test(){
            client.test()
        }
 
    </script>
</head>
<body>
<br />
<button onclick="test()">test</button>
</body>
</html>
 
public class WebActivity extends Activity{
 
    ProgressBar mProgressBar;
    WebView mWebView;
    String mUrl;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.web);
        mWebView = (WebView) findViewById(R.id.web_view);
        mProgressBar = (ProgressBar) findViewById(R.id.loading_progress);
        doWebViewSetting();
//    加载网页
        loadUrl("http://172.10.1.2:8080/test");
    }
 
    private void doWebViewSetting(){
//   设置WebClient(可不要)
        mWebView.setWebViewClient(new MyWebViewClient());
//  支持js(必要)
        mWebView.getSettings().setJavaScriptEnabled(true);
//    添加js对象(必要)
        mWebView.addJavascriptInterface(new JsOperation(this), "client");
    }
 
    private void loadUrl(String url) {
        mUrl = url;
        mProgressBar.setVisibility(View.VISIBLE);
        mWebView.loadUrl(url);
    }
 
 
    class MyWebViewClient extends WebViewClient{
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            mProgressBar.setVisibility(View.GONE);
        }
    }
    class JsOperation {
 
        Activity mActivity;
 
        public JsOperation(Activity activity) {
            mActivity = activity;
        }
 
//    测试方法       @javascriptInterface
        public void test() {
            Toast.makeText(mActivity,"test",Toast.LENGTH_SHORT).show();
        }
}
// Android调用js方法
使用loadUrl方法调用javascript
WebView.loadUrl(javascript:jsString)
jsString是要调用的js代码的字符串

第四模块:

https://img1.sycdn.imooc.com//6373a91f00010fc813660845.jpg

https://img1.sycdn.imooc.com//6373a91f0001f2ab13650766.jpg


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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

舉報(bào)

0/150
提交
取消