android deeplink能力支持

deeplink场景:在分享的web页面中,点击某控件,直接打来apk的指定位置

前段html代码(来自http://blog.csdn.net/u012792689/article/details/53925547?_t_t_t=0.663925763219595博主代码):


<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

        <meta name="apple-mobile-web-app-capable" content="yes">
        <meta name="apple-mobile-web-app-status-bar-style" content="black"/>

        <title>CAIXIAOcamera open video demotitle>
        <meta id="viewport" name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,minimal-ui">
    head>
    <body>
        <div>
            <a id="J-call-app" href="javascript:;" class="label">打开CAIXIAO相机视频>>a>
            <input id="J-download-app" type="hidden" name="storeurl" value="http://static.s3.CAIXIAO.com/Object.access/hj-video/aHVhamlhb19jYW1lcmFfc2p3cy5hcGs=">
        div>

        <script>
            (function(){
                var ua = navigator.userAgent.toLowerCase();
                var t;
                var config = {
                    /*scheme:必须 http://v.CAIXIAO.com/m/27812117.html  */
                    //scheme_IOS: 'will://',
                    scheme_Adr: 'hjcamera://v.CAIXIAO.com/m/27812117.html',
                    download_url: document.getElementById('J-download-app').value,
                    timeout: 600
                };
                function openclient() {
                    var startTime = Date.now();
                    var ifr = document.createElement('iframe');
                    ifr.src = ua.indexOf('os') > 0 ? config.scheme_IOS : config.scheme_Adr;
                    ifr.style.display = 'none';
                    document.body.appendChild(ifr);
                    var t = setTimeout(function() {
                        var endTime = Date.now();
                        if (!startTime || endTime - startTime < config.timeout + 200) { 
                            window.location = ifr.src;
                            //window.location = config.download_url;
                        } else {
                                //window.location = ifr.src;
                        }
                    }, config.timeout);
                    window.onblur = function() {
                        clearTimeout(t);
                    }
                }
                window.addEventListener("DOMContentLoaded", function(){
                    document.getElementById("J-call-app").addEventListener('click',openclient,false);
                }, false);
            })()
        script>
    body>
html>

啃一下前段的代码:

在web浏览器请求网页时,HTTP头和请求一起发送,并且每次服务端响应请求,将网页发送回客户端时,它会将http头也发送回客户端

1.mate标签

meta 标签:mate标签位于部分(不会在中使用),它包含与文档相关的信息,可以帮助搜索引擎索引王扎网站,指定文档的作者,以及如果文档具有时效性,可以指定网页什么时候过期

标签可以附带8个特性,4个通用特性:dir,lang,xml:long和title,+4个特有特性:achema,name,content,http-equiv

name特性和content特性通常是一起使用,http-equiv特性和cotent特性一起使用

1.name特性和content特性
name特性的值是正在设置的属性,并且content特性的值就是网页的name中的具体内容。name特性的值可以是任何内容,没有规定限制。

2.http-equiv特性和content特性
http-equiv和content用于设置HTTP头的值,举些例子:

使页面过期:
浏览器具有缓存功能,缓存中存储了浏览过的网页,如重新方位一个已经访问过的网页,浏览器会在缓存中加载某些或所有网络,这样会使网页加载更快,但这样也不会重现检索整个网页

 <mate http-equiv= "expires" content="Fri, 16 April 2017 12:30:00 GMT" />

但!!!在中添加如上信息,用户在过期之后加载该网页,浏览器不会使用缓存,浏览器将尝试从服务器中获取最新的版本(运营后台配置信息)

阻止浏览器缓存页面

<mate http-equid="pragma" content="no-cache">

刷新和重定向网页

<mate http-equiv="refresh" content="10;http://www.baidu.com">

指定作者姓名

<mate http-equiv="author" content="caixiao_engineer">

设置字符编码

2.js匿名函数

常言到对js来说,全局变量是魔鬼,但是,匿名函数就可以划出一块私有作用域,避免数据污染;执行完就销毁,避免内存长驻。

3.navigator.userAgent.toLowerCase();
navigator是HTML中的内置对象,包含浏览器的信息;userAgent是navigator的属性方法,可以返回由客户机发送服务器的头部的值,作用其实就是就是返回当前用户所使用的是什么浏览器,toLowerCase()是将转换为小写。

…….未完待续!!!!!!!!!!!!!!!!!!!!!!!!

客户端:

你可能感兴趣的:(android技术)