2015-05-19 6 views
2

Я хочу сделать кнопку на своем веб-сайте, которая позволит пользователю открыть собственное приложение facebook (если оно установлено) или открыть сайт facebook иначе. Как я понял, мне нужно создать отдельную страницу html для этого.Почему эта глубокая ссылка (приложение), созданная facebook, не работает?

Я пробовал ссылки на веб-сайт, размещенные на Facebook, чтобы получить рабочий пример приложения. Следующий код был создан в facebook, к нему можно получить доступ url.

Я попытался открыть эту ссылку с помощью iOS (Safari, Chrome), Android (браузер по умолчанию, Chrome). Несмотря на то, что у меня установлено приложение facebook на обоих устройствах, я перенаправлен на сайт facebook.

Почему это происходит? Как я могу заставить его открывать собственные приложения?

<html> 
    <head> 
     <title>App Link</title> 
     <meta property="fb:app_id" content="505860159524932" /> 
     <meta property="al:ios:url" content="fb://profile/838619192839881" /> 
     <meta property="al:ios:app_name" content="Facebook" /> 
     <meta property="al:ios:app_store_id" content="284882215" /> 
     <meta property="al:android:package" content="com.facebook.katana" /> 
     <meta property="al:android:app_name" content="Facebook" /> 
     <meta property="al:android:url" content="fb://page/838619192839881" /> 
     <meta property="al:web:should_fallback" content="false" /> 
     <meta property="al:web:url" content="https://www.facebook.com/warpcompany" /> 
     <meta http-equiv="refresh" content="0;url=https://www.facebook.com/warpcompany" /> 
    </head> 
    <body>Redirecting...</body> 
</html> 
+0

Safari и Chrome не поддерживают ссылки на приложения. –

ответ

0

the Facebook Doc говорит

App Links является открытым стандартом, который позволяет глубокой связи с содержанием в вашем приложении. Когда кто-то, использующий ваше приложение, обменивается контентом через Facebook (или другое приложение с поддержкой приложений), вы можете создать ссылку, которая позволит вам вернуться в ваше приложение из этого фрагмента контента.

поэтому я думаю, что @Ming Li сказал, что он не поддерживает Safari и Chrome.

Вы можете попробовать его на своей временной шкале и использовать приложение Facebook, чтобы открыть его.

3

AppLinks - протокол, который поддерживает только родной язык Facebook. Это означает, что только собственные приложения Facebook для Android и iOS будут правильно анализировать метатеги и предпринимать действия. Все остальные браузеры и платформы игнорируют их.

Для правильной обработки ссылок в других браузерах вы используете код перенаправления JS на стороне клиента в дополнение к AppLinks для поддержки перенаправления в других браузерах. Если вы не хотите все это выстраивать, я создал бесплатный инструмент под названием branch.io, который будет размещать ваши ссылки с этой клиентской стороной JS plus и автоматически настраивать ваши AppLinks.

Если вы хотели бы построить его самостоятельно, вот код, который вы можете использовать для IOS сафари:

<script type="text/javascript"> 
    window.onload = function() { 
     document.getElementById("l").src = "fb://page/838619192839881"; 

     setTimeout(function() { 
      window.location = "itms-apps://itunes.apple.com/app/id284882215"; 
     }, 750); 
    }; 
</script> 
<iframe id="l" width="1" height="1" style="visibility:hidden"></iframe> 

И для Android, вы можете использовать этот стороне клиента JS фрагмент кода:

<script type="text/javascript"> 
    window.onload = function() { 
     var method = 'iframe'; 
     var fallbackFunction = function() { 
      if (method == 'iframe') { 
       window.location = "market://details?id=com.facebook.katana"; 
      } 
     }; 
     var addIFrame = function() { 
      var iframe = document.createElement("iframe"); 
      iframe.style.border = "none"; 
      iframe.style.width = "1px"; 
      iframe.style.height = "1px"; 
      iframe.src = "fb://page/838619192839881"; 
      document.body.appendChild(iframe); 
     }; 
     var loadChromeIntent = function() { 
      method = 'intent'; 
      document.location = "intent://page/838619192839881#Intent;scheme=fb;package=com.facebook.katana;end"; 
     }; 
     if (navigator.userAgent.match(/Chrome/) && !navigator.userAgent.match("Version/")) { 
      loadChromeIntent(); 
     } 
     else if (navigator.userAgent.match(/Firefox/)) { 
      window.location = "fb://page/838619192839881"; 
     } 
     else { 
      addIFrame(); 
     } 
     setTimeout(fallbackFunction, 750); 
    }; 
</script> 
Смежные вопросы