【第22期】观点:IT 行业加班,到底有没有价值?

js向webview发送URL

原创 2016年06月01日 13:34:51

1、

在js中通过

window.location.href="MDWebBridge://PushWebView?url="+EncodeUtf8(_url_)+"&title="+EncodeUtf8(_title_);

向webview发送URL,其中MDWebBridge、PushWebView都是自定义的,只需保证js与native一致即可。

2、必须转码,通过EncodeUtrf8().

// 字符串转换utf-8  
    function EncodeUtf8(s1) {
        // escape函数用于对除英文字母外的字符进行编码。如“Visit W3School!”->"Visit%20W3School%21"  
        var s = escape(s1);
        var sa = s.split("%"); //sa[1]=u6211  
        var retV = "";
        if (sa[0] != "") {
            retV = sa[0];
        }
        for (var i = 1; i < sa.length; i++) {
            if (sa[i].substring(0, 1) == "u") {
                retV += Hex2Utf8(Str2Hex(sa[i].substring(1, 5)));
                if (sa[i].length >= 6) {
                    retV += sa[i].substring(5);
                }
            } else retV += "%" + sa[i];
        }
        return retV;
    };

    function Str2Hex(s) {
        var c = "";
        var n;
        var ss = "0123456789ABCDEF";
        var digS = "";
        for (var i = 0; i < s.length; i++) {
            c = s.charAt(i);
            n = ss.indexOf(c);
            digS += Dec2Dig(eval(n));

        }
        //return value;  
        return digS;
    };

    function Dec2Dig(n1) {
        var s = "";
        var n2 = 0;
        for (var i = 0; i < 4; i++) {
            n2 = Math.pow(2, 3 - i);
            if (n1 >= n2) {
                s += '1';
                n1 = n1 - n2;
            } else
                s += '0';

        }
        return s;

    };

    function Dig2Dec(s) {
        var retV = 0;
        if (s.length == 4) {
            for (var i = 0; i < 4; i++) {
                retV += eval(s.charAt(i)) * Math.pow(2, 3 - i);
            }
            return retV;
        }
        return -1;
    };

    function Hex2Utf8(s) {
        var retS = "";
        var tempS = "";
        var ss = "";
        if (s.length == 16) {
            tempS = "1110" + s.substring(0, 4);
            tempS += "10" + s.substring(4, 10);
            tempS += "10" + s.substring(10, 16);
            var sss = "0123456789ABCDEF";
            for (var i = 0; i < 3; i++) {
                retS += "%";
                ss = tempS.substring(i * 8, (eval(i) + 1) * 8);

                retS += sss.charAt(Dig2Dec(ss.substring(0, 4)));
                retS += sss.charAt(Dig2Dec(ss.substring(4, 8)));
            }
            return retS;
        }
        return "";
    };
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

HTTP、WebView、Socket、WiFi、蓝牙、Javascript编程方法总结及示例

Android的网络与通信 第一部分 Android网络基础 Android平台浏览器采用了WeBKit引擎,这款名为Chorme Lite的Web浏览器拥有强大扩展特性,每个开发者都以为编写自己的插件,使得浏览器的功能更加完善。 目前Android平台有3种网络接口。 第一种 java.n...

Android WebView - 全面总结(概述、捕获url、js交互、小技巧、内存泄漏、缓存机制)

前言结合H5页面开发的App日渐多了起来,而WebView正是Html与Native的纽带,今天就借着一个新的项目需求顺便做一下WebView的知识总结,如有错漏,恳请大家指点指点。(项目需求:将适配...
  • Goo_x
  • Goo_x
  • 2016-07-29 16:05
  • 1763

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

android WebView将新浪天气为我所用 ------>仅供娱乐

新浪天气提供了一个网页 http://w.sina.com 浏览器访问: 这效果还可以了哦,直接用webview加载出来,效果

WebView:拦截url、js交互、使用本地图片资源

上一篇WebView(一):基本设置与使用,我们了解了WebView的常用API、基本设置以及加载HTML网页。这一篇我们深入讲一些常用的WebView使用方法。比如我们标题上写的拦截URL、JS交互...

Android的网络与通信

第一部分 Android网络基础 Android平台浏览器采用了WeBKit引擎,这款名为Chorme Lite的Web浏览器拥有强大扩展特性,每个开发者都以为编写自己的插件,使得浏览器的功能更加完善。 目前Android平台有3种网络接口。 第一种 java.net.*(标准java接口) ...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)