Android webview与H5 Js 交互

1.app/src/main/assets目录下添加文件javascript.html

<html>

<script language="javascript">

        /* This function is invoked by the activity */

        function androidUseJs(result) {

            alert(result);

        }

</script>

<body>



<button onClick="window.method.jsUseAndroid()">

    Click me!

</button>

</body>

</html>


2.新建activity类(xml 布局:一个button:id:btn 一个webView:id:web)

public class JsWebViewActivity extends AppCompatActivity {


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_js_web_view);

        Button btn = (Button) findViewById(R.id.btn);

        final WebView web = (WebView) findViewById(R.id.web);

  //android调用JS方法 红色

        web.getSettings().setJavaScriptEnabled(true);

        web.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);

        web.setWebChromeClient(new WebChromeClient());

//JS调用android方法 蓝色

web.addJavascriptInterface(new DemoJavaScriptInterface(), "method");

        btn.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

                Toast.makeText(JsWebViewActivity.this,"androidUseJs",Toast.LENGTH_SHORT).show();

                web.loadUrl("javascript:androidUseJs(" + view.getId() + ")");

//如果传字符串 需要加上单引号  web.loadUrl("javascript:androidUseJs(" + view.getId() + ")");

            }

        });

        

        web.loadUrl("file:///android_asset/javascript.html");

    }



    final class DemoJavaScriptInterface {

        DemoJavaScriptInterface() {

        }

        @JavascriptInterface

        public void jsUseAndroid() {

            Toast.makeText(JsWebViewActivity.this,"jsUseAndroid",Toast.LENGTH_SHORT).show();

        }

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值