当前位置: 首页 > 知识库问答 >
问题:

如何在网站中进行深度链接

祁均
2023-03-14
<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设备上的应用程序。我知道这些链接有效,因为我单独尝试过。

共有3个答案

赵晟睿
2023-03-14

你可以使用branch.io,这更容易实现深度链接

廖弘伟
2023-03-14

从明斯特兰德解决方案的切换可以这样写,以避免重复:

switch(getMobileOperatingSystem()){
               case 'Android':
               case 'iOS':
                    urlLink1 = "instagram://user?username=owendunnigan";
                    urlLink2 = "twitter://user?username=owendunnigan";
                    urlLink3 = "facebook://user?username=owendunnigan";
                    break;
               default:
                    break;
            }

抱歉没有回复上面的解决方案但是我不能

武睿
2023-03-14

我会用不同的方式来处理这个问题。我不会单击检查源代码,而是执行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";
          urlLink2 = "twitter://user?username=owendunnigan";
          urlLink3 = "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 函数使用一个函数来调用传入变量,从而创建一种更 OOP 的样式,但为简单起见,这可以解决问题。

编辑2:

<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语句,但我首先调用了变量,所以我认为没有理由重置它们,但您可以使用它做更多的事情。如果这不管用,请告诉我。

 类似资料:
  • 问题内容: 您如何深度克隆Javascript对象? 我知道有很多基于类似的框架的功能,但是我不想使用类似的框架。 创建深度克隆的最优雅或最有效的方法是什么。 我们确实关心诸如克隆数组之类的边缘情况。不打破原型链,处理自我参考。 我们不在乎是否支持DOM对象的复制,因为存在该原因。 正如我主要想在使用V8引擎的ES5功能中使用深度克隆一样。 [编辑] 在有人建议我之前,先通过原型继承对象创建副本与

  • 我将在我的框架中支持深度链接。我分析了很多教程,都详细介绍了通用链接和URL方案。 对于通用链接,我需要在关联域中托管apple应用程序站点关联文件。apple app site association文件包含team ID Bundle ID。它在框架中不可扩展。 对于URL方案,我们需要重定向到自定义URI方案。 除此之外,我正在寻找一个类似Android应用程序链接的解决方案。 有没有办法不

  • 我有以下XML文件,希望使用PugiXML库将其解析为C++: 我用C++创建了一个图结构。现在的任务是从XML文件到C++图结构。这是我目前为止最好的尝试: 这段代码的问题在于它只处理XML节点“graph”。并不是所有的孩子都能接受。我发现一个可能的解决方案是使用深度优先遍历XML树。您可以在这里找到相应的文档(查找“Simple Walker”示例)。现在我被困住了,我不知道如何实现“简单的

  • 我正在尝试使用TestCafe/JavaScript创建一个测试,该测试将网站的顶部菜单文本/链接与存储在配置中的预期数据进行比较。我有一些使用TestCafe的经验,但仍在学习。 当我设置函数并调用它时,我输入了函数,但没有输入其中的循环,正如FOR循环内部的console.log没有打印到控制台所证明的那样。我调试这个已经有一段时间了,但无法理解。 网址:https://wdwthemepar

  • 我试图运行我的ASP. net网站(在Visual Studio c#中创建) 我遵循以下步骤: > 我启用了ssh连接 我发表了我的网站以便能够运行Linux设备 然后我复制了raspberry上的发布文件夹(使用winscp) 我试图运行的网站与PowerShell,我得到了这个消息: pi@raspberrypi:~ $ /home/pi/web/ModellFabrik info: Mic

  • 我已经完成了将我的android应用程序与我的网站进行深度链接,并处理了所有的URL。我注意到,在play store上启动应用程序后,我的网站URL的intent不会要求用户选择其他应用程序,如chrome或任何其他浏览器。其他一切都运转良好。 如果用户想在浏览器应用程序中打开我的网站URL,我将通过在任何其他浏览器中打开它。但我的问题是,intent chooser并没有要求使用浏览器应用程序