美文网首页
web前端(html+css+jQuery)和移动端(Andro

web前端(html+css+jQuery)和移动端(Andro

作者: 头发依然在 | 来源:发表于2019-10-25 09:18 被阅读0次

    一、android端配置:
    1、首先进行webView的配置

    Webview webView=findViewById(rId);
    WebSettings settings = webView.getSettings();
    // 设置WebView支持JavaScript  必须设置
    settings.setJavaScriptEnabled(true);
    

    2、定义web端要调用的类,同时提供给web端

        /**
         * js调用android
         */
        public class WebFunction {
            //这个是js调用android,给我传递参数。参数是相互定义好的
            @JavascriptInterface
            public void goToDetails(int id) {
                //方法体
            }
        }
    
    
        //将该方法提供给web端  
        //第一个参数是上面创建的类对象,
        //第二个参数是android和web交互的唯一标识符,web端使用该标识符调用类对象的方法
        webView.addJavascriptInterface(new WebFunction(), "WebFunction");
    
    

    二、Ios端设置(使用的是WKWebView)

       // 进行配置控制器
       WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
       // 实例化对象
       configuration.userContentController = wkUController;
       [configuration.userContentController addScriptMessageHandler:self name:@"goToDetails"];
    

    注:本人是android开发,ios代码只是复制的,goToDetails是一个方法,提供给web端调用,与下面web调用的方法名一致

    三、web端设置

    //判断是否为ios端访问
    function _IsIOS() {
        if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
            return true;
        } else {
            return false;
        }
    }
    //判断是否为android端访问
    function _IsAndroid() {
        if (/(Android|Adr)/i.test(navigator.userAgent)) {
            return true;
        } else {
            return false;
        }
    }
    //下面是web端在点击事件中调用移动端方法
    //点击调用移动端方法
    function onItemClick(audioId) {
        if (_IsAndroid()) {
            //WebFunction是android和web定义的标识类对象的唯一标识符,和android里传递的标识符是一 一对应的,goToDetails是类对象的方法名。
            WebFunction.goToDetails(audioId);
        } else if (_IsIOS()) {
            try {
                //调用格式: window.webkit.messageHandlers.方法名(与Ios定义的方法名一样).postMessage(参数);
                window.webkit.messageHandlers.goToDetails.postMessage(id);
            } catch (error) {
                console.log(error)
            }
        }
    }
    
    
    web代码复制的,仅供参考
    

    H5补充使用vue框架的写法:

    vue框架的写法.png

    推荐使用JsBridge

    相关文章

      网友评论

          本文标题:web前端(html+css+jQuery)和移动端(Andro

          本文链接:https://www.haomeiwen.com/subject/zxnjvctx.html