安卓可以调js的方法,可js调不了安卓的方法之解决方法

安卓可以调js的方法,可js调不了安卓的方法

直接上代码了:

public class MainActivity extends AppCompatActivity {
WebView webView;
private Handler mHandler = new Handler();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    webView = (WebView) findViewById(R.id.webview);
    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);

// webSettings.setUseWideViewPort(true);//设置此属性,可任意比例缩放
// webSettings.setLoadWithOverviewMode(true);
// webSettings.setBuiltInZoomControls(true);
// webSettings.setSupportZoom(true);
// webSettings.setJavaScriptCanOpenWindowsAutomatically(true);//允许js弹窗
webView.setWebChromeClient(new WebChromeClient());
webView.addJavascriptInterface(new JsInterface(), “demo”);
webView.loadUrl(“file:///android_asset/demo.html”);
}
final class JsInterface {
JsInterface(){

    }
    @JavascriptInterface//安卓4.2之后为提高安全性,使JS只能访问JavascriptInterface注解的函数
    public void clickOnAndroid(String msg) {
            Log.e("TAG", msg);
            mHandler.post(new Runnable() {
                @Override
                public void run() {
                    webView.loadUrl("javascript:wave('这是来自安卓的消息!')");//安卓调js
                }
            });
    }
}

}

这里不再冗述js与webview具体是如何交互的,如果碰到我一样的问题的同学,只要在你想要js执行的方法之前加上@JavascriptInterface这个注解就一切OK了,至于为什么,代码上有注释

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值