如何在Windows Phone 8中实现深层链接

时间:2015-10-26 17:23:08

标签: c# html xml windows-phone-8 deep-linking

我正在尝试使用myapp:// moniker实现深层链接。出于测试目的,我有一个HTML页面,其中包含以下元数据:

<html><head>
<meta property="al:windows_phone:app_id_here" content="12345" />
<meta property="al:windows_phone:url" content="myapp://products/?id=widget" />
<meta property="al:windows_phone:myapp" content="Example Store" />
<title></title>
</head>
<body>
<h1>Test</h1>
</body>
</html>

在WMAppManifest中,我已将协议声明为:

<Extensions>
  <Protocol Name="myapp" NavUriFragment="encodedLaunchUri=%s" TaskID="_default" />
</Extensions>

我已在私人服务器上托管了html,但在Windows Phone上通过Internet Explorer导航到该页面并不会打开该应用程序,而只是显示该网页。我对深层链接很新。我做错了什么?

1 个答案:

答案 0 :(得分:3)

AppLinks元标记只会将您的深层链接广告给抓取工具/漫游器(例如Google知道您的网站有相应的应用和深层链接)。

要实现实际的深层链接,您必须为您的网站添加一些代码。以下是一个非常准确的例子:

<script>
  // when the page is loaded...
  window.onload = function() {

    // and viewed on a Windows Phone...
    if (navigator.userAgent.match(/Windows Phone/)) {

      // then try to open the deep link
      window.location.replace('myapp://products/?id=widget');

      // if it didn't work after half a second, then redirect the
      // user to the app store where he can download the app
      setTimeout(function() {
        window.location.replace('http://www.windowsphone.com/s?appid=12345');
      }, 500);
    }
  }
</script>

如果您不想自己实施,那么您可以使用第三方提供商进行深层链接,例如: Shortcut Media(免责声明:我目前在Shortcut Media工作)。