H5与安卓和ios交互

单独的一个完整的判断的方法

//  **支付方法**
function goToPay(query) {
        console.log(query);
        var data = {
            'type': pay_type_code,
            'query': query
        };
        
        var u = navigator.userAgent; //http请求用户代理头
        var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //Android终端
        var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
        console.log('准备调起支付......');
        
        //android的处理
        if (isAndroid) {
            mainBridge = webViewJavascriptBridge;
            mainBridge.goToPay(JSON.stringify(data));
            return; //android不调用,但是需要实现方法..
        }
        console.log('吊起支付');
        
        //ios的处理
        window.webkit.messageHandlers.goToPay.postMessage(data);
    }


	function aa() {
			//判断当前系统设备,对应不同的下载链接
			var u = navigator.userAgent;
			var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端             
			var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端             
			if (isAndroid) {
				// 安卓方法
			}
			if (isiOS) {
				// ios方法
			}
	}

获取参数的方法

       // 获取token
        this.getToken = function() {
            if (that.debug) {
                console.log('mainBridge type is :', typeof that.mainBridge);
                console.log('callback is type :', typeof callback);
            }
            //android的处理
            if (that.isAndroid) {
                if (typeof that.mainBridge == "undefined") {
                    console.log("android未初始化:WebDemo");
                } else {
                    // 调用安卓方法,接收参数并return
                    return that.mainBridge.getToken();
                }
            }
            //ios的处理
            if (typeof that.mainBridge == "undefined") {
                let iOSInfo = JSON.parse(JSON.stringify(window.iOSInfo));
                return iOSInfo.token;
            }
        };

传递参数的方法

       // 点击跳转到另一个页面 ,调用时传递 { href:'跳转的url地址' }
       // bug:安卓智能接收字符串形式,所以需要把对象转化为字符串
       // bug:如果无需传递参数的交互,不传参可能会失败,可以随便传个字符串 ‘1’ 即可
        this.pageJump = function(query) {
            if (that.debug) {
                console.log('mainBridge type is :', typeof that.mainBridge);
                console.log('callback is type :', typeof callback);
            }
            //android的处理
            if (that.isAndroid) {
                if (typeof that.mainBridge == "undefined") {
                    console.log("android未初始化:WebDemo");
                } else {
                    that.mainBridge.pageJump(JSON.stringify(query));
                }
                return; //android不调用,但是需要实现方法..
            }
            //ios的处理
            if (typeof that.mainBridge == "undefined") {
                console.log('...................');
                console.log(query);
                window.webkit.messageHandlers.pageJump.postMessage(query);
            }
        }

猜你喜欢

转载自blog.csdn.net/weixin_43848576/article/details/89230693