[android]深层链接在网站如何

发布时间: 2017/3/18 13:12:34
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.
<a class="grey-text text-lighten-3" target="_blank" href="javascript:void(0);" onclick="document.write(yourOS())">Instagram</a>



function yourOS() {
var ua = navigator.platform.toLowerCase();
if (ua.indexOf("android") != -1) {
    document.write(.link("instagram://user?username=owendunnigan"));
} else {
    .link("http://www.instagram.com/OwenDunnigan");
}
}

我试着深层链接应用到我的网站,但我不能弄清楚如何把它转到定期老 Instagram 的计算机上,但应用程序然后去放在 Android 或 iOS 设备。我知道链接工作因为单独去尝试他们。

解决方法 1:

我会以不同的方式处理这。 而不是 onclick 检查源,我会做这个 onload。 所以︰

    <script>
    function onLoad(){
       var urlLink = "http://www.instagram.com/OwenDunnigan";
       var urlLink2 = "http://www.twitter.com/OwenDunnigan";
       var urlLink3 = "http://www.facebook.com/OwenDunnigan";
       var ua = navigator.userAgent.toLowerCase();
       var isAndroid = ua.indexOf("android") > -1;
       if(isAndroid) {
          urlLink = "instagram://user?username=owendunnigan";
          urlLink = "twitter://user?username=owendunnigan";
          urlLink = "facebook://user?username=owendunnigan";
       }
       document.getElementById('yourLink').setAttribute('href', urlLink);
       document.getElementById('yourLink2').setAttribute('href', urlLink2);
       document.getElementById('yourLink3').setAttribute('href', urlLink3);
    }
    window.onload = onLoad;
    </script>

    <a id="yourLink" class="grey-text text-lighten-3" target="_blank">Link</a>

我测试过上我 android 设备 / 笔记本电脑和它的工作为两个。

编辑︰ 向下和肮脏的地方。 您可以通过具有为变量,在调用传递的 onload 函数功能使更多的面向对象风格,但为了简单起见,这把戏。

Edit2:

<script>
        function getMobileOperatingSystem() {
           var userAgent = navigator.userAgent || navigator.vendor || window.opera;
           if( userAgent.match( /iPad/i ) || userAgent.match( /iPhone/i ) || userAgent.match( /iPod/i ) )
           {
              return 'iOS';
           }
           else if( userAgent.match( /Android/i ) )
           {
              return 'Android';
           }
           else
           {
              return 'unknown';
           }
        }

        function onLoad(){
           var urlLink1 = "http://www.instagram.com/OwenDunnigan";
           var urlLink2 = "http://www.twitter.com/OwenDunnigan";
           var urlLink3 = "http://www.facebook.com/OwenDunnigan";
           switch(getMobileOperatingSystem()){
               case 'Android':
                    urlLink1 = "instagram://user?username=owendunnigan";
                    urlLink2 = "twitter://user?username=owendunnigan";
                    urlLink3 = "facebook://user?username=owendunnigan";
                    break;
               case 'iOS':
                    urlLink1 = "instagram://user?username=owendunnigan";
                    urlLink2 = "twitter://user?username=owendunnigan";
                    urlLink3 = "facebook://user?username=owendunnigan";
                    break;
               default:
                    break;
            }
           document.getElementById('yourLink1').setAttribute('href', urlLink1);
           document.getElementById('yourLink2').setAttribute('href', urlLink2);
           document.getElementById('yourLink3').setAttribute('href', urlLink3);
        }
        window.onload = onLoad;
        </script>

        <a id="yourLink1" class="grey-text text-lighten-3" target="_blank">Link1</a>
        <a id="yourLink2" class="grey-text text-lighten-3" target="_blank">Link2</a>
        <a id="yourLink3" class="grey-text text-lighten-3" target="_blank">Link3</a>

清理代码,并从这里滚在函数中︰检测 iOS / Android 操作系统可以通过简单地扩大检测功能和添加 case 语句中添加其他系统。 当然,我并没有添加一个默认的 case 语句你通常这样做,但是首先的变量没有理由重置它们在我看来,但你也可以去到调用它的更多。 让我知道是否这不起作用。

官方微信
官方QQ群
31647020