安卓技术总结

Native/JS交互方案

2018-05-04  本文已影响319人  落水木木

Native/JS交互方案

标签(空格分隔): Hybird


1. 方案一 scheme拦截(JSBridge)

客户端通拦截H5的url,判定之后执行约定的逻辑。


JS对话框方法

1.js调用prompt方法

unction clickprompt(){
    // 调用prompt()
    var result=prompt("js://demo?params");
    alert("demo " + result);

2.在客户端的WebChromeClient()重写onJsPrompt()

  public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result) {
        // 根据协议的参数,判断是否是所需要的url
        // 一般根据scheme(协议格式) & authority(协议名)判断(前两个参数)
        Uri uri = Uri.parse(message);
        if (uri.getScheme().equals("js")) {
            if (uri.getAuthority().equals("demo")) {
                // 执行JS所需要调用的逻辑
                System.out.println("js调用了Android的方法");
                // 可以在协议上带有参数并传递到Android上
                HashMap<String, String> params = new HashMap<>();
                Set<String> collection = uri.getQueryParameterNames();
                //参数result:代表消息框的返回值(输入值)
                result.confirm("js调用了Android的方法成功啦");
            }
            return true;
        }
        return super.onJsPrompt(view, url, message, defaultValue, result);
    }

3.2 优点

3.3 缺点

4. 总结

js交互方案总结

参考

Carson_Ho-最全面总结 Android WebView与 JS 的交互方式
不会写代码的IT男-WebView 安全之 addJavascriptInterface
lzyzsd-JsBridge

上一篇下一篇

猜你喜欢

热点阅读