admin 发表于 2016-12-1 18:06:37

AppLink

<div class="post-content" itemprop="articleBody" style="margin-bottom: 30px; background-color: rgb(253, 253, 253);"><p style="color: rgb(17, 17, 17); font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB W3', 'Hiragino Sans GB', STHeiti, 'STHeiti Light ', 'Microsoft YaHei', 'WenQuanYi Micro Hei', Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: 15px;">从同构的角度和降级支持的角度来看,使用Android和iOS系统增强的<a href="https://developer.android.com/training/app-links/index.html" style="color: rgb(23, 86, 169); text-decoration: none;">AppLinks</a>和<a href="https://developer.apple.com/library/content/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW1" style="color: rgb(23, 86, 169); text-decoration: none;">Universal Links</a>,通过HTTPS统一标准打开APP是标准的选择。</p><p style="color: rgb(17, 17, 17); font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB W3', 'Hiragino Sans GB', STHeiti, 'STHeiti Light ', 'Microsoft YaHei', 'WenQuanYi Micro Hei', Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: 15px;">使用自定义Scheme打开APP适用于:</p><ol style="color: rgb(17, 17, 17); font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB W3', 'Hiragino Sans GB', STHeiti, 'STHeiti Light ', 'Microsoft YaHei', 'WenQuanYi Micro Hei', Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: 15px; margin-left: 30px;"><li>网站尚不支持HTTPS;</li><li>App的iOS版本尚未添加Universal Links支持;</li><li>APP的Android版本尚未添加AppLinks支持,同时需要支持Android 6.0以下版本。</li></ol><p style="color: rgb(17, 17, 17); font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB W3', 'Hiragino Sans GB', STHeiti, 'STHeiti Light ', 'Microsoft YaHei', 'WenQuanYi Micro Hei', Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: 15px;">使用<code class="highlighter-rouge" style="font-size: 15px; border: 1px solid rgb(232, 232, 232); border-radius: 3px; padding: 1px 5px; background-color: rgb(238, 238, 255);">自定义Scheme</code>打开App的难点在于浏览器的兼容性问题和alert弹窗的提示干扰问题。 在iOS和Android中可以用<code class="highlighter-rouge" style="font-size: 15px; border: 1px solid rgb(232, 232, 232); border-radius: 3px; padding: 1px 5px; background-color: rgb(238, 238, 255);">location.href</code>请求<code class="highlighter-rouge" style="font-size: 15px; border: 1px solid rgb(232, 232, 232); border-radius: 3px; padding: 1px 5px; background-color: rgb(238, 238, 255);">自定义Scheme</code>可以打开App,用<code class="highlighter-rouge" style="font-size: 15px; border: 1px solid rgb(232, 232, 232); border-radius: 3px; padding: 1px 5px; background-color: rgb(238, 238, 255);">iframe</code>只能在Android中打开,在iOS中无法打开。故下面的实现用<code class="highlighter-rouge" style="font-size: 15px; border: 1px solid rgb(232, 232, 232); border-radius: 3px; padding: 1px 5px; background-color: rgb(238, 238, 255);">location.href</code>请求的方案。</p><p style="color: rgb(17, 17, 17); font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB W3', 'Hiragino Sans GB', STHeiti, 'STHeiti Light ', 'Microsoft YaHei', 'WenQuanYi Micro Hei', Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: 15px;">在<a href="https://timseverien.com/deep-link.js" style="color: rgb(23, 86, 169); text-decoration: none;">DEEP-LINK.JS</a>基础上修改为<a href="https://github.com/bystep15/applink" style="color: rgb(23, 86, 169); text-decoration: none;">applink</a>,放在团队代码库下。 将原来DeepLink的方案扩展为AppLink,使其兼容常见下载的需求。</p><h2 id="section" style="color: rgb(17, 17, 17); font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB W3', 'Hiragino Sans GB', STHeiti, 'STHeiti Light ', 'Microsoft YaHei', 'WenQuanYi Micro Hei', Arial, sans-serif; font-size: 32px; line-height: 24px; margin-bottom: 15px; font-weight: 400;">基本思路</h2><ol style="color: rgb(17, 17, 17); font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB W3', 'Hiragino Sans GB', STHeiti, 'STHeiti Light ', 'Microsoft YaHei', 'WenQuanYi Micro Hei', Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: 15px; margin-left: 30px;"><li>自动跳转链接赋值给href属性作为下载的默认值;</li><li>将AppStore地址、Android下载包地址、应用宝推广链接和应用deeplink地址赋值给自定义属性供程序使用;</li><li>将下载链接进行优化,避免302跳转带来的性能损失;</li><li>监听a链接点击事件,当存在deeplink时,尝试打开App,打开失败后进行下载或AppStore跳转(微信内部跳转到应用宝);</li><li>visibility发生变化后,取消备用方案执行。</li></ol><h2 id="section-1" style="color: rgb(17, 17, 17); font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB W3', 'Hiragino Sans GB', STHeiti, 'STHeiti Light ', 'Microsoft YaHei', 'WenQuanYi Micro Hei', Arial, sans-serif; font-size: 32px; line-height: 24px; margin-bottom: 15px; font-weight: 400;">核心代码</h2><figure class="highlight" style="color: rgb(17, 17, 17); font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB W3', 'Hiragino Sans GB', STHeiti, 'STHeiti Light ', 'Microsoft YaHei', 'WenQuanYi Micro Hei', Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: 15px; background-image: initial; background-attachment: initial; background-color: rgb(255, 255, 255); background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><pre style="margin-bottom: 15px; padding: 8px 12px; font-size: 15px; border: 1px solid rgb(232, 232, 232); border-radius: 3px; overflow-x: auto; background-color: rgb(238, 238, 255);"><code class="language-html" data-lang="html" style="border: 0px; border-radius: 3px; padding-top: 1px; padding-bottom: 1px;"><span class="nt" style="color: rgb(0, 0, 128);">&lt;a</span>
    <span class="na" style="color: rgb(0, 128, 128);">href=</span><span class="s" style="color: rgb(221, 17, 68);">"download-link"</span>                         <span class="err" style="color: rgb(166, 23, 23); background-color: rgb(227, 210, 210);">//</span> <span class="err" style="color: rgb(166, 23, 23); background-color: rgb(227, 210, 210);">服务器端设置的根据</span><span class="na" style="color: rgb(0, 128, 128);">UA</span><span class="err" style="color: rgb(166, 23, 23); background-color: rgb(227, 210, 210);">判断的自动跳转链接,包含下面</span><span class="na" style="color: rgb(0, 128, 128);">4</span><span class="err" style="color: rgb(166, 23, 23); background-color: rgb(227, 210, 210);">中情况</span>
    <span class="na" style="color: rgb(0, 128, 128);">data-href-android=</span><span class="s" style="color: rgb(221, 17, 68);">"android-download-link"</span>    <span class="err" style="color: rgb(166, 23, 23); background-color: rgb(227, 210, 210);">//</span> <span class="na" style="color: rgb(0, 128, 128);">Android</span><span class="err" style="color: rgb(166, 23, 23); background-color: rgb(227, 210, 210);">包下载地址</span>
    <span class="na" style="color: rgb(0, 128, 128);">data-href-ios=</span><span class="s" style="color: rgb(221, 17, 68);">"itunes-link"</span>                  <span class="err" style="color: rgb(166, 23, 23); background-color: rgb(227, 210, 210);">//</span> <span class="na" style="color: rgb(0, 128, 128);">itunes</span><span class="err" style="color: rgb(166, 23, 23); background-color: rgb(227, 210, 210);">地址</span>
    <span class="na" style="color: rgb(0, 128, 128);">data-href-qq-android=</span><span class="s" style="color: rgb(221, 17, 68);">"myapp-link"</span>            <span class="err" style="color: rgb(166, 23, 23); background-color: rgb(227, 210, 210);">//</span> <span class="err" style="color: rgb(166, 23, 23); background-color: rgb(227, 210, 210);">应用宝推广地址</span>
    <span class="na" style="color: rgb(0, 128, 128);">data-href-qq-ios=</span><span class="s" style="color: rgb(221, 17, 68);">"myapp-link"</span>                <span class="err" style="color: rgb(166, 23, 23); background-color: rgb(227, 210, 210);">//</span> <span class="err" style="color: rgb(166, 23, 23); background-color: rgb(227, 210, 210);">应用宝推广地址</span>
    <span class="na" style="color: rgb(0, 128, 128);">data-deeplink=</span><span class="s" style="color: rgb(221, 17, 68);">"deep-link"</span>                  <span class="err" style="color: rgb(166, 23, 23); background-color: rgb(227, 210, 210);">//</span> <span class="err" style="color: rgb(166, 23, 23); background-color: rgb(227, 210, 210);">跳转</span><span class="na" style="color: rgb(0, 128, 128);">App</span><span class="err" style="color: rgb(166, 23, 23); background-color: rgb(227, 210, 210);">地址</span>
<span class="nt" style="color: rgb(0, 0, 128);">&gt;</span>立即打开<span class="nt" style="color: rgb(0, 0, 128);">&lt;/a&gt;</span></code></pre></figure><figure class="highlight" style="color: rgb(17, 17, 17); font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB W3', 'Hiragino Sans GB', STHeiti, 'STHeiti Light ', 'Microsoft YaHei', 'WenQuanYi Micro Hei', Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: 15px; background-image: initial; background-attachment: initial; background-color: rgb(255, 255, 255); background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><pre style="margin-bottom: 15px; padding: 8px 12px; font-size: 15px; border: 1px solid rgb(232, 232, 232); border-radius: 3px; overflow-x: auto; background-color: rgb(238, 238, 255);"><code class="language-javascript" data-lang="javascript" style="border: 0px; border-radius: 3px; padding-top: 1px; padding-bottom: 1px;"><span class="c1" style="color: rgb(153, 153, 136); font-style: italic;">// 下载链接优化代码</span>
<span class="c1" style="color: rgb(153, 153, 136); font-style: italic;">// 根据agent取指定的值进行优化赋值</span>
<span class="kd" style="font-weight: bold;">function</span> <span class="nx">optimize</span><span class="p">(</span><span class="nx">anchor</span><span class="p">)</span> <span class="p">{</span>
    <span class="k" style="font-weight: bold;">if</span> <span class="p">(</span><span class="o" style="font-weight: bold;">!</span><span class="nx">anchor</span><span class="p">)</span> <span class="p">{</span>
      <span class="k" style="font-weight: bold;">return</span><span class="p">;</span>
    <span class="p">}</span>

    <span class="kd" style="font-weight: bold;">var</span> <span class="nx">href</span> <span class="o" style="font-weight: bold;">=</span> <span class="nx">anchor</span><span class="p">.</span><span class="nx">getAttribute</span><span class="p">(</span><span class="s1" style="color: rgb(221, 17, 68);">'data-href-'</span> <span class="o" style="font-weight: bold;">+</span> <span class="nx">agent</span><span class="p">);</span>

    <span class="k" style="font-weight: bold;">if</span> <span class="p">(</span><span class="o" style="font-weight: bold;">!</span><span class="nx">href</span><span class="p">)</span> <span class="p">{</span>
      <span class="k" style="font-weight: bold;">return</span><span class="p">;</span>
    <span class="p">}</span>

    <span class="nx">anchor</span><span class="p">.</span><span class="nx">href</span> <span class="o" style="font-weight: bold;">=</span> <span class="nx">href</span><span class="p">;</span>
<span class="p">}</span></code></pre></figure><figure class="highlight" style="color: rgb(17, 17, 17); font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB W3', 'Hiragino Sans GB', STHeiti, 'STHeiti Light ', 'Microsoft YaHei', 'WenQuanYi Micro Hei', Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: 15px; background-image: initial; background-attachment: initial; background-color: rgb(255, 255, 255); background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><pre style="margin-bottom: 15px; padding: 8px 12px; font-size: 15px; border: 1px solid rgb(232, 232, 232); border-radius: 3px; overflow-x: auto; background-color: rgb(238, 238, 255);"><code class="language-javascript" data-lang="javascript" style="border: 0px; border-radius: 3px; padding-top: 1px; padding-bottom: 1px;"><span class="c1" style="color: rgb(153, 153, 136); font-style: italic;">// 尝试打开App代码</span>
<span class="c1" style="color: rgb(153, 153, 136); font-style: italic;">// App打开之后,浏览器转入后台运行,计时器会暂停,根据这个时间差判断是否打开了App</span>
<span class="c1" style="color: rgb(153, 153, 136); font-style: italic;">// 如果App打开失败,则执行后备方案,跳转到href地址进行App下载活安装</span>
<span class="nb" style="color: rgb(0, 134, 179);">document</span><span class="p">.</span><span class="nx">body</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="s1" style="color: rgb(221, 17, 68);">'click'</span><span class="p">,</span> <span class="kd" style="font-weight: bold;">function</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span>
    <span class="c1" style="color: rgb(153, 153, 136); font-style: italic;">// Hijack click event</span>

    <span class="kd" style="font-weight: bold;">var</span> <span class="nx">target</span> <span class="o" style="font-weight: bold;">=</span> <span class="nx">e</span><span class="p">.</span><span class="nx">target</span><span class="p">,</span>
      <span class="nx">deeplink</span> <span class="o" style="font-weight: bold;">=</span> <span class="nx">target</span><span class="p">.</span><span class="nx">getAttribute</span><span class="p">(</span><span class="s1" style="color: rgb(221, 17, 68);">'data-deeplink'</span><span class="p">),</span>
      <span class="nx">start</span><span class="p">;</span>

    <span class="k" style="font-weight: bold;">if</span> <span class="p">(</span><span class="nx">target</span><span class="p">.</span><span class="nx">tagName</span><span class="p">.</span><span class="nx">toLowerCase</span><span class="p">()</span> <span class="o" style="font-weight: bold;">!==</span> <span class="s1" style="color: rgb(221, 17, 68);">'a'</span> <span class="o" style="font-weight: bold;">||</span> <span class="o" style="font-weight: bold;">!</span><span class="nx">deeplink</span> <span class="o" style="font-weight: bold;">||</span> <span class="nx">clicked</span> <span class="o" style="font-weight: bold;">||</span> <span class="nx">timeout</span><span class="p">)</span> <span class="p">{</span>
      <span class="k" style="font-weight: bold;">return</span><span class="p">;</span>
    <span class="p">}</span>

    <span class="nx">e</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span>
    <span class="nx">e</span><span class="p">.</span><span class="nx">stopImmediatePropagation</span><span class="p">();</span>

    <span class="c1" style="color: rgb(153, 153, 136); font-style: italic;">// Store start time</span>
    <span class="nx">start</span> <span class="o" style="font-weight: bold;">=</span> <span class="nb" style="color: rgb(0, 134, 179);">Date</span><span class="p">.</span><span class="nx">now</span><span class="p">();</span>
    <span class="nx">clicked</span> <span class="o" style="font-weight: bold;">=</span> <span class="kc" style="font-weight: bold;">true</span><span class="p">;</span>

    <span class="c1" style="color: rgb(153, 153, 136); font-style: italic;">// Timeout to detect if the link worked</span>
    <span class="nx">timeout</span> <span class="o" style="font-weight: bold;">=</span> <span class="nx">setTimeout</span><span class="p">(</span><span class="kd" style="font-weight: bold;">function</span> <span class="p">()</span> <span class="p">{</span>
      <span class="c1" style="color: rgb(153, 153, 136); font-style: italic;">// Check if any of the values are unset</span>
      <span class="k" style="font-weight: bold;">if</span> <span class="p">(</span><span class="o" style="font-weight: bold;">!</span><span class="nx">clicked</span> <span class="o" style="font-weight: bold;">||</span> <span class="o" style="font-weight: bold;">!</span><span class="nx">timeout</span><span class="p">)</span> <span class="p">{</span>
            <span class="k" style="font-weight: bold;">return</span><span class="p">;</span>
      <span class="p">}</span>

      <span class="c1" style="color: rgb(153, 153, 136); font-style: italic;">// Reset things</span>
      <span class="nx">clicked</span> <span class="o" style="font-weight: bold;">=</span> <span class="kc" style="font-weight: bold;">false</span><span class="p">;</span>
      <span class="nx">timeout</span> <span class="o" style="font-weight: bold;">=</span> <span class="kc" style="font-weight: bold;">null</span><span class="p">;</span>

      <span class="c1" style="color: rgb(153, 153, 136); font-style: italic;">// Has the user left the screen? ABORT!</span>
      <span class="k" style="font-weight: bold;">if</span> <span class="p">(</span><span class="nb" style="color: rgb(0, 134, 179);">Date</span><span class="p">.</span><span class="nx">now</span><span class="p">()</span> <span class="o" style="font-weight: bold;">-</span> <span class="nx">start</span> <span class="o" style="font-weight: bold;">&gt;=</span> <span class="nx">delay</span> <span class="o" style="font-weight: bold;">*</span> <span class="mi" style="color: rgb(0, 153, 153);">2</span><span class="p">)</span> <span class="p">{</span>
            <span class="k" style="font-weight: bold;">return</span><span class="p">;</span>
      <span class="p">}</span>

      <span class="nx">open</span><span class="p">(</span><span class="nx">target</span><span class="p">.</span><span class="nx">href</span><span class="p">);</span>
    <span class="p">},</span> <span class="nx">delay</span><span class="p">);</span>

    <span class="c1" style="color: rgb(153, 153, 136); font-style: italic;">// Go to app</span>
    <span class="nx">open</span><span class="p">(</span><span class="nx">deeplink</span><span class="p">);</span>
<span class="p">},</span> <span class="kc" style="font-weight: bold;">false</span><span class="p">);</span></code></pre></figure><figure class="highlight" style="color: rgb(17, 17, 17); font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB W3', 'Hiragino Sans GB', STHeiti, 'STHeiti Light ', 'Microsoft YaHei', 'WenQuanYi Micro Hei', Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: 15px; background-image: initial; background-attachment: initial; background-color: rgb(255, 255, 255); background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><pre style="margin-bottom: 15px; padding: 8px 12px; font-size: 15px; border: 1px solid rgb(232, 232, 232); border-radius: 3px; overflow-x: auto; background-color: rgb(238, 238, 255);"><code class="language-javascript" data-lang="javascript" style="border: 0px; border-radius: 3px; padding-top: 1px; padding-bottom: 1px;"><span class="c1" style="color: rgb(153, 153, 136); font-style: italic;">// 取消备用代码执行</span>
<span class="c1" style="color: rgb(153, 153, 136); font-style: italic;">// 当浏览器窗口发生visibility变化时,App应该被调起过</span>
<span class="kd" style="font-weight: bold;">function</span> <span class="nx">handleVisibilityChange</span><span class="p">()</span> <span class="p">{</span>
    <span class="c1" style="color: rgb(153, 153, 136); font-style: italic;">// Triggered on blur</span>
    <span class="k" style="font-weight: bold;">if</span> <span class="p">(</span><span class="o" style="font-weight: bold;">!</span><span class="nx">clicked</span> <span class="o" style="font-weight: bold;">||</span> <span class="o" style="font-weight: bold;">!</span><span class="nx">timeout</span><span class="p">)</span> <span class="p">{</span>
      <span class="k" style="font-weight: bold;">return</span><span class="p">;</span>
    <span class="p">}</span>

    <span class="c1" style="color: rgb(153, 153, 136); font-style: italic;">// Reset everything</span>
    <span class="nx">clearInterval</span><span class="p">(</span><span class="nx">timeout</span><span class="p">);</span>
    <span class="nx">timeout</span> <span class="o" style="font-weight: bold;">=</span> <span class="kc" style="font-weight: bold;">null</span><span class="p">;</span>
    <span class="nx">clicked</span> <span class="o" style="font-weight: bold;">=</span> <span class="kc" style="font-weight: bold;">false</span><span class="p">;</span>
<span class="p">}</span>

<span class="nb" style="color: rgb(0, 134, 179);">document</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="nx">visibilityChange</span><span class="p">,</span> <span class="nx">handleVisibilityChange</span><span class="p">,</span> <span class="kc" style="font-weight: bold;">false</span><span class="p">);</span></code></pre></figure><h2 id="section-2" style="color: rgb(17, 17, 17); font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB W3', 'Hiragino Sans GB', STHeiti, 'STHeiti Light ', 'Microsoft YaHei', 'WenQuanYi Micro Hei', Arial, sans-serif; font-size: 32px; line-height: 24px; margin-bottom: 15px; font-weight: 400;">测试结果</h2><blockquote style="color: rgb(130, 130, 130); font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB W3', 'Hiragino Sans GB', STHeiti, 'STHeiti Light ', 'Microsoft YaHei', 'WenQuanYi Micro Hei', Arial, sans-serif; font-size: 18px; line-height: 24px; margin-bottom: 15px; padding-left: 15px; border-left-width: 4px; border-left-style: solid; border-left-color: rgb(232, 232, 232); letter-spacing: -1px; font-style: italic;"><p>任何技术方案和要交付的工作,必须做足够多的测试,因为我们要为自己的产出负责,要为下游的测试同事负责——而且自我再多的测试也是不足够充分的,总有一些小漏洞在暗处等着你我,出现问题解决问题这是我们的态度。</p></blockquote><h3 id="section-3" style="color: rgb(17, 17, 17); font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB W3', 'Hiragino Sans GB', STHeiti, 'STHeiti Light ', 'Microsoft YaHei', 'WenQuanYi Micro Hei', Arial, sans-serif; font-size: 26px; line-height: 24px; margin-bottom: 15px; font-weight: 400;">已安装启动测试结果</h3><table style="color: rgb(17, 17, 17); font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB W3', 'Hiragino Sans GB', STHeiti, 'STHeiti Light ', 'Microsoft YaHei', 'WenQuanYi Micro Hei', Arial, sans-serif; font-size: 16px; line-height: 24px; width: 740px; max-width: 100%; margin-bottom: 15px;"><thead><tr><th style="padding: 15px; vertical-align: bottom; border-bottom-width: 2px; border-bottom-style: solid; border-bottom-color: rgb(66, 66, 66); text-align: center;">系统版本\浏览器</th><th style="padding: 15px; vertical-align: bottom; border-bottom-width: 2px; border-bottom-style: solid; border-bottom-color: rgb(66, 66, 66); text-align: center;">系统浏览器</th><th style="padding: 15px; vertical-align: bottom; border-bottom-width: 2px; border-bottom-style: solid; border-bottom-color: rgb(66, 66, 66); text-align: center;">UC浏览器</th><th style="padding: 15px; vertical-align: bottom; border-bottom-width: 2px; border-bottom-style: solid; border-bottom-color: rgb(66, 66, 66); text-align: center;">百度浏览器</th><th style="padding: 15px; vertical-align: bottom; border-bottom-width: 2px; border-bottom-style: solid; border-bottom-color: rgb(66, 66, 66); text-align: center;">QQ浏览器</th><th style="padding: 15px; vertical-align: bottom; border-bottom-width: 2px; border-bottom-style: solid; border-bottom-color: rgb(66, 66, 66); text-align: center;">猎豹浏览器</th></tr></thead><tbody><tr><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); text-align: center;">iOS 8.4.1</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接启动</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">ActionSheet确认打开AppStore,返回后触发ActionSheet确认打开AppStore</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接启动</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接启动,返回后打开应用宝App页面</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接启动,返回后浏览器内部打开AppStore</td></tr><tr><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); text-align: center;">iOS 9.3.5</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">弹窗确认</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接启动</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接启动</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接启动,返回后打开应用宝App页面</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接启动</td></tr><tr><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); text-align: center;">iOS 10.1.1</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">弹窗确认</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">ActionSheet确认</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接启动</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接启动,返回后打开应用宝App页面</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接启动,返回后浏览器内部打开AppStore</td></tr><tr><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); text-align: center;">Z2 Android 4.4.2</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接启动</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">ActionSheet确认,返回后触发下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">无法启动,触发下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">弹窗确认,返回后触发下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">弹窗确认</td></tr><tr><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); text-align: center;">MX5 Android 5.0.1</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接启动,触发下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接启动,触发下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">无法启动,触发下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">弹窗确认,返回后触发下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">弹窗确认</td></tr><tr><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); text-align: center;">X6 Android 5.0.2</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">ActionSheet确认,返回后触发下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">ActionSheet确认,返回后触发下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">无法启动,触发下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">弹窗确认,返回后触发下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">弹窗确认,返回后触发下载</td></tr><tr><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); text-align: center;">T2 Android 5.1.1</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接启动</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">ActionSheet确认</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">无法启动,触发下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">弹窗确认,返回后触发下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接启动</td></tr><tr><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); text-align: center;">Mi5 Android 6.0.1</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接启动</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">ActionSheet确认,返回后触发下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">无法启动,触发下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">弹窗确认,返回后触发下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">弹窗确认,返回后触发下载</td></tr><tr><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); text-align: center;">6P Android 7.0.0</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接启动</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">ActionSheet确认,返回后触发下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">无法启动,触发下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">弹窗确认</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">弹窗确认,返回后触发下载</td></tr></tbody></table><h3 id="section-4" style="color: rgb(17, 17, 17); font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB W3', 'Hiragino Sans GB', STHeiti, 'STHeiti Light ', 'Microsoft YaHei', 'WenQuanYi Micro Hei', Arial, sans-serif; font-size: 26px; line-height: 24px; margin-bottom: 15px; font-weight: 400;">未安装下载测试结果</h3><table style="color: rgb(17, 17, 17); font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB W3', 'Hiragino Sans GB', STHeiti, 'STHeiti Light ', 'Microsoft YaHei', 'WenQuanYi Micro Hei', Arial, sans-serif; font-size: 16px; line-height: 24px; width: 740px; max-width: 100%; margin-bottom: 15px;"><thead><tr><th style="padding: 15px; vertical-align: bottom; border-bottom-width: 2px; border-bottom-style: solid; border-bottom-color: rgb(66, 66, 66); text-align: center;">系统版本\浏览器</th><th style="padding: 15px; vertical-align: bottom; border-bottom-width: 2px; border-bottom-style: solid; border-bottom-color: rgb(66, 66, 66); text-align: center;">系统浏览器</th><th style="padding: 15px; vertical-align: bottom; border-bottom-width: 2px; border-bottom-style: solid; border-bottom-color: rgb(66, 66, 66); text-align: center;">UC浏览器</th><th style="padding: 15px; vertical-align: bottom; border-bottom-width: 2px; border-bottom-style: solid; border-bottom-color: rgb(66, 66, 66); text-align: center;">百度浏览器</th><th style="padding: 15px; vertical-align: bottom; border-bottom-width: 2px; border-bottom-style: solid; border-bottom-color: rgb(66, 66, 66); text-align: center;">QQ浏览器</th><th style="padding: 15px; vertical-align: bottom; border-bottom-width: 2px; border-bottom-style: solid; border-bottom-color: rgb(66, 66, 66); text-align: center;">猎豹浏览器</th></tr></thead><tbody><tr><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); text-align: center;">iOS 8.4.1</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">先显示链接错误弹窗,再AppStore打开确认</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">先显示链接错误弹窗,之后ActionSheet提醒打开AppStore</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接打开AppStore</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">打开应用宝App页面</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">提示应用未安装之后在浏览器内部打开AppStore</td></tr><tr><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); text-align: center;">iOS 9.3.5</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">先显示链接错误弹窗,再AppStore打开确认</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">ActionSheet提醒打开AppStore</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接打开AppStore</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">打开应用宝App页面</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">提示应用未安装之后打开AppStore</td></tr><tr><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); text-align: center;">iOS 10.1.1</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">先显示链接错误弹窗,再AppStore打开确认</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接打开AppStore</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接打开AppStore</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">打开应用宝App页面</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">浏览器内部打开AppStore</td></tr><tr><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); text-align: center;">Z2 Android 4.4.2</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">打开自定义scheme页面</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">ActionSheet提示打开App,关闭ActionSheet后开始下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接下载</td></tr><tr><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); text-align: center;">MX5 Android 5.0.1</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接下载</td></tr><tr><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); text-align: center;">X6 Android 5.0.2</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">ActionSheet提示打开App,关闭ActionSheet后开始下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接下载</td></tr><tr><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); text-align: center;">T2 Android 5.1.1</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接下载</td></tr><tr><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); text-align: center;">Mi5 Android 6.0.1</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">ActionSheet提示打开App,关闭ActionSheet后开始下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接下载</td></tr><tr><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); text-align: center;">6P Android 7.0.0</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">选择下载器下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">ActionSheet提示打开App,关闭ActionSheet后开始下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接下载</td><td style="padding: 15px; vertical-align: top; border-bottom-color: rgb(130, 130, 130); border-left-color: rgb(130, 130, 130); text-align: center;">直接下载</td></tr></tbody></table><h2 id="section-5" style="color: rgb(17, 17, 17); font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB W3', 'Hiragino Sans GB', STHeiti, 'STHeiti Light ', 'Microsoft YaHei', 'WenQuanYi Micro Hei', Arial, sans-serif; font-size: 32px; line-height: 24px; margin-bottom: 15px; font-weight: 400;">参考资料</h2><ol style="color: rgb(17, 17, 17); font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB W3', 'Hiragino Sans GB', STHeiti, 'STHeiti Light ', 'Microsoft YaHei', 'WenQuanYi Micro Hei', Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: 15px; margin-left: 30px;"><li><a href="https://zhuanlan.zhihu.com/p/20694818" style="color: rgb(23, 86, 169); text-decoration: none;">移动DeepLink的前生今世</a>;</li><li><a href="https://timseverien.com/deep-link.js" style="color: rgb(23, 86, 169); text-decoration: none;">DEEP-LINK.JS</a></li><li><a href="http://deepshare.io/2016/05/01/deeplink/" style="color: rgb(23, 86, 169); text-decoration: none;">DEEPLINK 与增长黑客:低成本实现用户增长的方法论</a></li><li><a href="http://blog.zhaiyifan.cn/2016/02/04/deeplink-intro/" style="color: rgb(23, 86, 169); text-decoration: none;">Deep Link是什么</a></li><li><a href="https://help.tune.com/marketing-console/how-to-deeplink-to-your-mobile-app-from-your-website/" style="color: rgb(23, 86, 169); text-decoration: none;">How to Deep Link to Your Mobile App from Your Website</a></li><li><a href="http://tech.glowing.com/cn/deferred-deep-linking-and-branch-sdk-in-ios/" style="color: rgb(23, 86, 169); text-decoration: none;">Deferred Deep Linking in iOS</a></li><li><a href="http://www.zhangyunling.com/?p=559" style="color: rgb(23, 86, 169); text-decoration: none;">支持IOS9+和Android5+,JS打开APP的解决方案</a></li><li><a href="https://segmentfault.com/a/1190000005967865" style="color: rgb(23, 86, 169); text-decoration: none;">怎么在网页中打开你的app</a></li><li><a href="http://fegirl.com/2016/06/27/IOS9%20%E9%80%9A%E7%94%A8%E9%93%BE%E6%8E%A5%EF%BC%88universal%20link%EF%BC%89/" style="color: rgb(23, 86, 169); text-decoration: none;">IOS9通用链接(universal link)</a></li></ol><div style="color: rgb(17, 17, 17); font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB W3', 'Hiragino Sans GB', STHeiti, 'STHeiti Light ', 'Microsoft YaHei', 'WenQuanYi Micro Hei', Arial, sans-serif; font-size: 16px; line-height: 24px;"><br></div><div style="color: rgb(17, 17, 17); font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB W3', 'Hiragino Sans GB', STHeiti, 'STHeiti Light ', 'Microsoft YaHei', 'WenQuanYi Micro Hei', Arial, sans-serif; font-size: 16px; line-height: 24px;"><br></div><div style="color: rgb(17, 17, 17); font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB W3', 'Hiragino Sans GB', STHeiti, 'STHeiti Light ', 'Microsoft YaHei', 'WenQuanYi Micro Hei', Arial, sans-serif; font-size: 16px; line-height: 24px;"><br></div><div><font color="#111111" face="Helvetica Neue, Helvetica, Hiragino Sans GB W3, Hiragino Sans GB, STHeiti, STHeiti Light , Microsoft YaHei, WenQuanYi Micro Hei, Arial, sans-serif"><span style="font-size: 16px; line-height: 24px;">http://testudy.cc/tech/2016/11/25/applink.html</span></font></div></div><p></p>

kaneki880914 发表于 2017-1-6 06:54:44

这个资源不错。感谢楼主!……来自于捡代码论坛

beyond 发表于 2017-1-18 17:39:12

http://www.ij34.com/index
页: [1]
查看完整版本: AppLink