定位_定位修改 - CSDN
定位 订阅
《定位》是机械工业出版社于2002年2月出版发行的一本图书,作者是艾·里斯 ,杰克·特劳特。 [1]  本书阐述了“定位”观念的产生,剖析了“满足需求”无法赢得用户的原因,给出了如何进入用户心智以赢得用户选择之道 [2]  。2009年,《定位》一书被财富杂志评选为“史上百本最佳商业经典”第一名 [3]  。 展开全文
《定位》是机械工业出版社于2002年2月出版发行的一本图书,作者是艾·里斯 ,杰克·特劳特。 [1]  本书阐述了“定位”观念的产生,剖析了“满足需求”无法赢得用户的原因,给出了如何进入用户心智以赢得用户选择之道 [2]  。2009年,《定位》一书被财富杂志评选为“史上百本最佳商业经典”第一名 [3]  。
信息
原版名称
定位
作    者
艾·里斯,杰克·特劳特
译    者
邓德隆、火华强 [4]
类    别
商业类书籍 [2]
装    帧
平装
书    名
定位
出版时间
2010-12-01
出版社
机械工业出版社
ISBN
9787111577973 [4]
页    数
314
版    次
1
印    次
1
定位图书简介
《定位》本书提出了被称为“有史以来对美国营销影响最大的观念”——定位,改观了人类“满足需求”的旧有营销认识,开创了“胜出竞争”的营销之道。本书阐述“定位”观念的产生,剖析“满足需求”无法赢得顾客的原因,给出如何进入顾客心智以赢得选择的定位之道。在竞争日益激烈的今天,它揭示了现代企业经营的本质(争夺顾客),为企业阐明了获胜的要诀(赢得心智之战),是商业人士的必读之作。 [5] 
收起全文
精华内容
参与话题
  • 从html5打开本地的app–如果本地没有app就...我们不妨看一下京东是如何解决的。京东的原代码已经混淆过了,我只能一点点反混淆并注释。 网上的文章千篇一律 都是采用window.location.href的方式打开的,但是这种方法的

    从html5打开本地的app–如果本地没有app就跳转到下载页面,大家都会认为这是一项很简单的操作。网上的教程也很多,但是可行性都不高。因为手机系统和浏览器型号各不相同,所以兼容性会是让各个前端工程师头疼的问题。我们不妨看一下京东是如何解决的。京东的原代码已经混淆过了,我只能一点点反混淆并注释。

    网上的文章千篇一律 都是采用window.location.href的方式打开的,但是这种方法的兼容性非常的渣。在ios的safari浏览器中无法使用,会出现还未打开app就自动跳转到下载页面的情况,影响用户的使用。那么我们来看一下京东是如何解决兼容性的问题。
    下面附上我的代码翻译和注释。
    京东打开app的js代码链接

    
        (function(){
        // 判断浏览器
                var Navigator = navigator.userAgent;
            var ifChrome = Navigator.match(/Chrome/i) != null && Navigator.match(/Version\/\d+\.\d+(\.\d+)?\sChrome\//i) == null ? true : false;  
            var ifAndroid = (Navigator.match(/(Android);?[\s\/]+([\d.]+)?/)) ? true : false;
            var ifiPad = (Navigator.match(/(iPad).*OS\s([\d_]+)/)) ? true : false;
            var ifiPhone = (!ifiPad && Navigator.match(/(iPhone\sOS)\s([\d_]+)/)) ? true : false;
            var ifSafari = (ifiPhone || ifiPad) && Navigator.match(/Safari/);
            var version = 0;
            ifSafari && (version = Navigator.match(/Version\/([\d\.]+)/));
    
                version = parseFloat(version[1], 10);
                // 是否从微信打开
            var ifWeixin = navigator.userAgent.indexOf("MicroMessenger") >= 0; // weixin
            var j = false;
            var iframe = "plugIn_downloadAppPlugIn_loadIframe";
            var t = false;
            var i = 0;
            var B = {};
            var b = {};
            var selector = null;
            var Hquery = {};
                // 判断当前使用的js框架是zepto还是jquery
            var Query = window.Zepto || window.jQuery ? true : false;
            var g = [];
                // 是否存在html5的localStorage 存储
            var v = window.localStorage ? true : false;
            var o = "mdownloadAppPlugInskip";
            var p = null;
    
            function m() { // 打印时间 例如:2016-5-18
                var M = new Date();
                var N = M.getFullYear();
                var O = M.getMonth() + 1;
                var L = M.getDate();
                strDate = N + "-" + O + "-" + L;
                return strDate
            }
                // 微信相关操作
            function r() { // weixin api
                WeixinJSBridge.invoke("getInstallState", {
                    packageName: "com.jingdong.app.mall",
                    packageUrl: "openApp.jdMobile://"
                }, function(M) {
                    var N = M.err_msg,
                        L = 0;
                    if (N.indexOf("get_install_state:yes") > -1) {
                        j = true
                    }
                })
            }
               // 根据是否存在js框架进行dom和时间的绑定
            function bind(dom, event, fun) { // bind event
                if (Query) {
                    selector("#" + dom).bind(event, fun)
                } else {
                    selector("#" + dom).addEventListener(event, fun, !1)
                }
            }
    
            function z(L) {
                var M = (L || "mGen") + (++i);
                return M
            }
                // 微信操作
            if (ifWeixin) { // if navigitor is weixin 
                if (window.WeixinJSBridge && WeixinJSBridge.invoke) {
                    r()
                } else {
                    document.addEventListener("WeixinJSBridgeReady", r, !1)
                }
            }
    
                // 如果存在js框架
            if (Query) {
                selector = window.$;
                Hquery = window.$
            } else {
                selector = function(obj) {
                    if (typeof obj == "object") {
                        return obj
                    }
                    return document.querySelector(obj);
                };
                if (!window.$) {
                    window.$ = Hquery = selector
                } else {
                    Hquery = window.$ 
                }
            }
            window.onblur = function() {
                for (var L = 0; L < g.length; L++) {
                    clearTimeout(g[L])
                }
            };
                 // 设置cookie。
            function e(N) {
                var M = document.cookie.indexOf(N + "=");
                if (M == -1) {
                    return ""
                }
                M = M + N.length + 1;
                var L = document.cookie.indexOf(";", M);
                if (L == -1) {
                    L = document.cookie.length
                }
                return document.cookie.substring(M, L)
            }
                // 设置cookie
            function l(N, P, L, Q, O) { 
                var R = N + "=" + escape(P);
                if (L != "") {
                    var M = new Date();
                    M.setTime(M.getTime() + L * 24 * 3600 * 1000);
                    R += ";expires=" + M.toGMTString()
                }
                if (Q != "") {
                    R += ";path=" + Q
                }
                if (O != "") {
                    R += ";domain=" + O
                }
                document.cookie = R
            }
    
                // 打开的链接集合
            function F(L) {
                var url = {
                    downAppURl: "http://h5.m.jd.com/active/download/download.html?channel=jd-m",
                    downAppIos: "http://union.m.jd.com/download/go.action?to=http%3A%2F%2Fitunes.apple.com%2Fcn%2Fapp%2Fid414245413&client=apple&unionId=12532&subunionId=m-top&key=e4dd45c0f480d8a08c4621b4fff5de74",
                    downWeixin: "http://a.app.qq.com/o/simple.jsp?pkgname=com.jingdong.app.mall&g_f=991850",
                    downIpad: "https://itunes.apple.com/cn/app/jing-dong-hd/id434374726?mt=8",
                    inteneUrl: "openApp.jdMobile://360buy?type=1",
                    inteneUrlParams: null,
                    openAppBtnId: "",
                    closePanelBtnId: "",
                    closePanelId: "",
                    closeCallblack: null,
                    closeCallblackSource: null,
                    cookieFlag: null,
                    noRecord: false,
                    sourceType: "JSHOP_SOURCE_TYPE",
                    sourceValue: "JSHOP_SOURCE_VALUE",
                    openAppEventId: "MDownLoadFloat_OpenNow",
                    closePanelEventId: "MDownLoadFloat_Close"
                };
                if (L) {
                    for (var M in L) {
                        if (M && L[M]) {
                            url[M] = L[M]
                        }
                    }
                }
                return url
            }
                // 敲黑板 重点内容。看京东是怎么解决兼容问题的。
            function openApp(N, L) { // openApp
                var R = h(N); //获取相对应的url
                var O = null;
                if (ifWeixin) { // 如果是微信端
                    var M = null;
                    if (j) {
                        M = R
                    } else {
                        M = N.downWeixin
                    }
                    location.href = M; // 直接使用location.href打开
                    return
                }
                if (ifiPad) { // 如果是ipad
                    O = N.downIpad
                } else { 
                    if (ifiPhone) { // 如果是iphone
                        O = N.downAppIos
                    } else {
                        O = N.downAppURl
                    }
                }
    
                if (ifChrome) { // 如果是chrome
                    if (ifAndroid) { //安卓浏览器
                        var Q = R;
                        R = y(Q);
                                        // 延后50毫秒
                        setTimeout(function() {
                            window.location.href = R 
                        }, 50)
                    }
                }
                if (ifSafari && version >= 9) { // 判断safari版本 如果大于9
                    setTimeout(function() {  // 必须要使用settimeout
                        var S = document.createElement("a"); //创建a元素
                        S.setAttribute("href", R), S.style.display = "none", document.body.appendChild(S);
                        var T = document.createEvent("HTMLEvents"); // 返回新创建的 Event 对象,具有指定的类型。
                        T.initEvent("click", !1, !1)// 初始化新事件对象的属性,   S.dispatchEvent(T)  // 绑定事件
                    }, 0)
                } else {
                    document.querySelector("#" + iframe).src = R // 将iframe增加src
                }
                var P = Date.now();
                setTimeout(function() {
                    if (L) {
                        var S = setTimeout(function() {
                            x(P, O)
                        }, 1500);
                        g.push(S)
                    }
                }, 100)
            }
                // x方法
            function x(N, downUrl) {
                var L = Date.now();
                if (N && (L - N) < (1500 + 200)) {
                    window.location.href = downUrl
                }
            }
    
            function h(N) {
                var V = [];
                var P = N.inteneUrlParams;
                var T = {
                    category: "jump",
                    des: "productDetail"
                };
                if (N.sourceType && N.sourceValue) {
                    T.sourceType = N.sourceType;
                    T.sourceValue = N.sourceValue;
                    if (P && !P.sourceType && !P.sourceValue) {
                        P.sourceType = N.sourceType;
                        P.sourceValue = N.sourceValue
                    }
                }
                if (P) {
                    for (var U in P) {
                        if (U && P[U]) {
                            V.push('"' + U + '":"' + P[U] + '"')
                        }
                    }
                } else {
                    for (var U in T) {
                        if (U && T[U]) {
                            V.push('"' + U + '":"' + T[U] + '"')
                        }
                    }
                }
                try {
                    var Q = MPing.EventSeries.getSeries();
                    if (Q) {
                        var W = JSON.parse(Q);
                        W.jdv = encodeURIComponent(e("__jdv"));
                        W.unpl = encodeURIComponent(e("unpl"));
                        W.mt_xid = encodeURIComponent(e("mt_xid"));
                        W.mt_subsite = encodeURIComponent(e("mt_subsite"))
                    }
                    var S = {
                        mt_subsite: encodeURIComponent(e("mt_subsite")),
                        __jdv: encodeURIComponent(e("__jdv")),
                        unpl: encodeURIComponent(e("unpl")),
                        __jda: encodeURIComponent(e("__jda"))
                    };
                    Q = JSON.stringify(W);
                    V.push('"m_param":' + Q);
                    V.push('"SE":' + JSON.stringify(S))
                } catch (R) {
                    V.push('"m_param":null')
                }
                var M = "{" + V.join(",") + "}";
                var O = N.inteneUrl.split("?");
                var L = null;
                if (O.length == 2) {
                    L = O[0] + "?" + O[1] + "&params=" + M
                } else {
                    L = O[0] + "?params=" + M
                }
                return L
            }
    
            function y(L) {
                return "intent://m.jd.com/#Intent;scheme=" + L + ";package=com.jingdong.app.mall;end"
            }
    
            function n(L) {
                if (L.openAppBtnId) {
                    B[L.openAppBtnId] = L;
                    G(L.openAppBtnId, L.openAppEventId);
                    bind(L.openAppBtnId, "click", function() {
                        var P = this.getAttribute("id");
                        var M = B[P];
                        if (!t) {
                            var N = document.createElement("iframe");
                            N.id = iframe;
                            document.body.appendChild(N);
                            document.getElementById(iframe).style.display = "none";
                            document.getElementById(iframe).style.width = "0px";
                            document.getElementById(iframe).style.height = "0px";
                            t = true
                        }
                        var O = M.cookieFlag ? "downloadAppPlugIn_downCloseDate_" + M.cookieFlag : "downloadAppPlugIn_downCloseDate";
                        l(O, Date.now() + "_2592000000", 60, "/", "m.jd.com");
                        l(O, Date.now() + "_2592000000", 60, "/", "m.jd.hk");
                        openApp(M, true)
                    })
                }
            }
    
            function D(M) {
                if (M.closePanelBtnId && M.closePanelId) {
                    B[M.closePanelBtnId] = M;
                    G(M.closePanelBtnId, M.closePanelEventId);
                    var Q = M.cookieFlag ? "downloadAppPlugIn_downCloseDate_" + M.cookieFlag : "downloadAppPlugIn_downCloseDate";
                    var O = e(Q);
                    var P = null;
                    if (O) {
                        P = O.split("_");
                        if (P.length == 2) {
                            P[0] = parseInt(P[0], 10);
                            P[1] = parseInt(P[1], 10)
                        } else {
                            P = null
                        }
                    }
                    var L = Date.now();
                    if (Html5Plus() || (!M.noRecord && P && P.length == 2 && (L - P[0]) < P[1])) {
                        document.querySelector("#" + M.closePanelId).style.display = "none";
                        if (M.closeCallblack) {
                            var N = M.closeCallblackSource ? M.closeCallblackSource : null;
                            M.closeCallblack.call(N)
                        }
                        return
                    } else {
                        document.querySelector("#" + M.closePanelId).style.display = "block"
                    }
                    bind(M.closePanelBtnId, "click", function() {
                        var U = this.getAttribute("id");
                        var R = B[U];
                        var T = R.cookieFlag ? "downloadAppPlugIn_downCloseDate_" + R.cookieFlag : "downloadAppPlugIn_downCloseDate";
                        if (!R.noRecord) {
                            l(T, Date.now() + "_259200000", 60, "/", "m.jd.com");
                            l(T, Date.now() + "_259200000", 60, "/", "m.jd.hk")
                        }
                        document.querySelector("#" + R.closePanelId).style.display = "none";
                        if (R.closeCallblack) {
                            var S = R.closeCallblackSource ? R.closeCallblackSource : null;
                            R.closeCallblack.call(S)
                        }
                    })
                }
            }
    
            function Html5Plus() { // htmlplus
                if (Navigator.indexOf("Html5Plus") >= 0) {
                    return true
                } else {
                    return false
                }
            }
    
            function G(P, M) {
                try {
                    var O = document.getElementById(P);
                    var L = O.className;
                    if (L) {
                        L = L + " J_ping"
                    } else {
                        L = "J_ping"
                    }
                    O.className = L;
                    O.setAttribute("report-eventid", M)
                } catch (N) {}
            }
    
            function C(L) {
                var M = F(L);
                n(M);
                D(M)
            }
            Hquery.downloadAppPlugIn = C;
            Hquery.downloadAppPlugInOpenApp = function(L) {
                var M = F(L);
                openApp(M);
            }
        });
    
    展开全文
  • 打开京东

    千次阅读 2017-08-18 16:01:44
    京东打开对应商品以及跳转apptore地址   NSURL * jd_app_url = [NSURL URLWithString:@"openapp.jdmobile://"];  NSURL *url;  if([[UIApplication sharedApplication] canOpenURL:jd_app_url]) {  ...
    京东打开对应商品以及跳转apptore地址   

     NSURL * jd_app_url = [NSURL URLWithString:@"openapp.jdmobile://"];
        NSURL *url;
        if([[UIApplication sharedApplication] canOpenURL:jd_app_url]) {
            NSString *urlString = @"openapp.jdmobile://virtual?params=%7B%22sourceValue%22:%220_productDetail_97%22,%22des%22:%22productDetail%22,%22skuId%22:%2210058164%22,%22category%22:%22jump%22,%22sourceType%22:%22PCUBE_CHANNEL%22%7D";
            url = [NSURL URLWithString:urlString];
            [[UIApplication sharedApplication]openURL:url];
        }else {
            //初始化AlertView
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示"
                                                            message:@"尚未安装京东"
                                                           delegate:self
                                                  cancelButtonTitle:@"取消"
                                                  otherButtonTitles:@"确定",nil];

            //显示AlertView
            [alert show];
            
            NSString *urlString = @"https://itunes.apple.com/cn/app/%E4%BA%AC%E4%B8%9C-%E9%A6%96%E6%AC%A1%E8%B4%AD%E4%B9%B0%E5%8F%AF%E9%A2%86%E5%8F%96188%E5%85%83%E4%BC%98%E6%83%A0%E5%88%B8/id414245413?mt=8";
            url = [NSURL URLWithString:urlString];
            [[UIApplication sharedApplication]openURL:url];
        }
    展开全文
  • 如果本地已经安装了指定Android应用,就直接打开它;如果没有安装,则直接下载该应用的安装文件(也可以跳转到下载页面)。 实现效果 如下图所示,在手机浏览器中访问京东的手机版网站(m.jd.com),顶部会有一个...

    实现方式不太完美,最近看了微博、京东的手机版网页,感觉他们的实现方式很不错,研究了一下,实现以下效果:

    如果本地已经安装了指定Android应用,就直接打开它;如果没有安装,则直接下载该应用的安装文件(也可以跳转到下载页面)。

    实现效果

    如下图所示,在手机浏览器中访问京东的手机版网站(m.jd.com),顶部会有一个广告图,点击这个广告图,如果手机上已经安装了京东App,则直接打开,如果没有安装,则开始下载。

    实现方式

    1.为Android应用的启动Activity设置一个Schema,如下:

    <data android:host="splash" android:scheme="cundong"/>

    2.用户点击浏览器中的链接时,在动态创建一个不可见的iframe,并且让这个iframe去加载步骤1中的Schema,如下:

    var ifr = document.createElement('iframe');
    ifr.src="cundong://splash"

    3,如果在指定的时间内没有跳转成功,则当前页跳转到apk的下载地址(或下载页),如下:

    window.location = download_url;

     

    HTML代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    <!doctype html>
    <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>this's a demo</title>
            <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">立即打开&gt;&gt;</a>
                <input id="J-download-app" type="hidden" name="storeurl" value="http://m.chanyouji.cn/apk/chanyouji-2.2.0.apk">
            </div>
     
            <script>
                (function(){
                    var ua = navigator.userAgent.toLowerCase();
                    var t;
                    var config = {
                        /*scheme:必须*/
                        scheme_IOS: 'cundong://',
                        scheme_Adr: 'cundong://splash',
                        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 = config.download_url;
                            } else {
                                 
                            }
                        }, config.timeout);
     
                        window.onblur = function() {
                            clearTimeout(t);
                        }
                    }
                    window.addEventListener("DOMContentLoaded", function(){
                        document.getElementById("J-call-app").addEventListener('click',openclient,false);
     
                    }, false);
                })()
            </script>
        </body>
    </html>

     AndroidMainfext.xml

     

    <activity
         android:name=".activity.LauncherActivity"
         android:configChanges="orientation|keyboardHidden|navigation|screenSize"
         android:label="@string/app_name"
         android:screenOrientation="portrait" >
            <intent-filter>
               <action android:name="android.intent.action.MAIN" />
               <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:host="splash" android:scheme="cundong" />
           </intent-filter>
    </activity>
    
    
    

    原文地址:http://my.oschina.net/liucundong/blog/354029

    展开全文
  • 实现效果如下图所示,在手机浏览器中访问京东的手机版网站(m.jd.com),顶部会有一个广告图,点击这个广告图,如果手机上已经安装了京东App,则直接打开,如果没有安装,则开始下载。实现方式1.为Android应用的启动...

    实现效果

    如下图所示,在手机浏览器中访问京东的手机版网站(m.jd.com),顶部会有一个广告图,点击这个广告图,如果手机上已经安装了京东App,则直接打开,如果没有安装,则开始下载。

    实现方式

    1.为Android应用的启动Activity设置一个Schema,如下:

    <data android:host="splash" android:scheme="cundong"/>

    2.用户点击浏览器中的链接时,在动态创建一个不可见的iframe,并且让这个iframe去加载步骤1中的Schema,如下:

    var ifr = document.createElement('iframe');
    ifr.src="cundong://splash"

    3,如果在指定的时间内没有跳转成功,则当前页跳转到apk的下载地址(或下载页),如下:

    window.location = download_url;

    HTML代码

    <!doctype html>
    <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>this's a demo</title>
            <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">立即打开&gt;&gt;</a>
                <input id="J-download-app" type="hidden" name="storeurl" value="http://m.chanyouji.cn/apk/chanyouji-2.2.0.apk">
            </div>
    
            <script>
                (function(){
                    var ua = navigator.userAgent.toLowerCase();
                    var t;
                    var config = {
                        /*scheme:必须*/
                        scheme_IOS: 'cundong://',
                        scheme_Adr: 'cundong://splash',
                        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 = config.download_url;
                            } else {
    
                            }
                        }, config.timeout);
    
                        window.onblur = function() {
                            clearTimeout(t);
                        }
                    }
                    window.addEventListener("DOMContentLoaded", function(){
                        document.getElementById("J-call-app").addEventListener('click',openclient,false);
    
                    }, false);
                })()
            </script>
        </body>
    </html>

    AndroidMainfext.xml

    <activity
         android:name=".activity.LauncherActivity"
         android:configChanges="orientation|keyboardHidden|navigation|screenSize"
         android:label="@string/app_name"
         android:screenOrientation="portrait" >
            <intent-filter>
               <action android:name="android.intent.action.MAIN" />
               <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:host="splash" android:scheme="cundong" />
           </intent-filter>
    </activity>

    转载自:更新:通过浏览器直接打开Android应用程序
    参考:http://blog.csdn.net/jerryvon/article/details/7489573

    展开全文
  • 通过浏览器直接打开Android应用程序

    千次阅读 2015-04-29 17:45:54
    转自:http://my.oschina.net/liucundong/blog/168612 http://my.oschina.net/liucundong/blog/354029  Update:  更新了实现方式:http://my.oschina.net/liucundong/blog/354029 ...---------我是分
  • 通过手机浏览器直接打开Android应用程序。 如果本地已经安装了指定Android应用,就直接打开它; 如果没有安装,则直接下载该应用的安装文件(也可以跳转到下载页面)。 之前写过一篇blog,介绍如何通过点击手机...
  • 使用python+selenium爬取京东商品列表

    千次阅读 2018-10-09 17:58:14
    1、直接从JavaScript中采集加载的数据 import requests import urllib.parse from lxml import etree header={ 'User-Agent': 'Mozilla/5.0 ... WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.349...
  • Android DeepLink介绍与使用

    千次阅读 2018-11-19 09:37:53
    前段时间公司让调研一下DeepLink,说以后会用到,之前看了很久,并做了个demo,现整理一下,方便以后查阅,如果有幸帮助到其他人就更好了。 基本概念 Deep Link,又叫deep linking,中文翻译作深层链接。...
  • 我们在开发 App 应用中,经常会遇到打开第三方程序的场景,比如打开手机淘宝、通过第三方浏览器打开一个 url 等等。 App不像网页可以使用http超链接互相跳转,但手机os设计了scheme机制,可以通过特殊的链接互相调...
  • H5打开APP技术总结

    万次阅读 2020-07-05 10:58:18
    这种方式虽然可自定义程度很高,能够巧妙地实现很多跳转,但弊端也很明显:我们只能通过 scheme://example 这种格式的链接来实现跳转,而且现在苹果还对这种方式的跳转加了一个提示框:“是否打开XXX”。对于对Web和...
  •  支付渠道费用(2016)渠道名称接入费交易手续费申请时间资金到帐时间Apple Pay免费实物类:0.7%每笔 3C/数码/数娱:1.2%每笔7-15工作日T+1拉卡拉免费实物类:0.6%每笔 虚拟类:2%每笔1-3工作日T+1微信300元/年...
1 2 3 4 5 ... 20
收藏数 504
精华内容 201
关键字:

定位