Js与安卓互掉

XML代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>Test Page</title>
		 <script>
                    /**
                    Android端调用的JavaScript方法
                    */
                    function call_javascript_method(txt){
                        var p=document.getElementById('txt1');
                        alert(p.innerHTML);
                        p.innerText=txt;
                    }
                    /**
                    JavaScript端调用Android端的方法
                    */
                    function call_android_method(){
                       window.tgf.Jafun();
                    }
            </script>
	</head>
	<body>
		<div>
    <p id="txt1" style="font-size: x-large;color: blueviolet;">我是P文本</p>
    <button id="btn_submit" onclick="call_android_method();">调用Android方法</button>
</div>
	</body>
</html>

安卓和js互掉

public class MainActivity extends AppCompatActivity {
    private WebView web;
    private Button bt;
    private String str="安卓调用js";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获取控件id
        web = (WebView) findViewById(R.id.web);
        bt = (Button) findViewById(R.id.bt);


        
        web.getSettings().setJavaScriptEnabled(true);//设置允许访问js
        web.getSettings().setAllowFileAccess(true);//设置允许访问文件
        //加载本地assets
        web.loadUrl("file:///android_asset/index.html");
        //加载网页
//        web.loadUrl("https://www.baidu.com/");
        //自适应屏幕
        web.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
        web.getSettings().setLoadWithOverviewMode(true);
        //设置可以支持缩放
        web.getSettings().setSupportZoom(true);
        //扩大比例的缩放
        web.getSettings().setUseWideViewPort(true);
        //设置是否出现缩放工具
        web.getSettings().setBuiltInZoomControls(true);

        //js调用安卓
        web.addJavascriptInterface(this,"tgf");
        web.setWebViewClient(new WebViewClient());
        //alert弹出必须设置
        web.setWebChromeClient(new WebChromeClient(){
            @Override
            public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
                return super.onJsAlert(view, url, message, result);
            }
        });
        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //安卓调用js方法
                web.loadUrl("Javascript:call_javascript_method('"+str+"')");
            }
        });

    }
    //js调用安卓必须写
    @JavascriptInterface
    public void Jafun(){
        Toast.makeText(this, "js调用安卓", Toast.LENGTH_SHORT).show();
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        if(web != null){
            web.clearCache(true);//清除缓存
            web.clearHistory();//清除历史记录
            web.clearFormData();//清除数据
            web.destroy();//销毁webview

        }
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值