Как реализовать глубокие ссылки в Windows Phone 8

Я пытаюсь реализовать глубокие ссылки с помощью 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 на частном сервере, но переход на страницу через Internet Explorer на Windows Phone не открывает приложение, а просто показывает веб-страницу. Я очень плохо знаком с глубокими связями. Что я делаю неправильно?

1 ответ

Решение

Мета-теги 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>

Если вы не хотите реализовывать это самостоятельно, вы можете использовать сторонний поставщик для глубоких ссылок, например, ярлык (Отказ от ответственности: в настоящее время я работаю на ярлык).

Другие вопросы по тегам