2015-05-19 37 views
2

我想在我的網站上製作一個按鈕,這將允許用戶打開原生Facebook應用程序(如果已安裝),否則打開Facebook網站。據我瞭解,我必須爲此創建單獨的html頁面。爲什麼這個由facebook生成的深層鏈接(applink)不起作用?

我嘗試了Facebook託管的應用程序鏈接以獲得可用的App鏈接示例。以下代碼由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

的應用鏈接是一個開放的標準,能夠深層鏈接內容在您的應用程序。當有人使用您的應用程序通過Facebook(或其他支持應用程序鏈接的應用程序)共享內容時,您可以創建一個鏈接,從而可以從該內容跳回到您的應用程序。

所以我覺得像@Ming Li說的那樣,它不支持Safari和Chrome。

你可以在你的時間表上試試,並使用Facebook應用程序打開它。

3

AppLinks是一個只有Facebook本地支持的協議。這意味着只有適用於Android和iOS的Facebook本機應用才能正確解析元標記並採取行動。所有其他瀏覽器和平臺都忽略它們。

爲了正確處理其他瀏覽器中的鏈接,除AppLink之外,還使用客戶端JS重定向代碼支持其他瀏覽器中的重定向。如果您不想全部構建,我建立了一個名爲branch.io的免費工具,它將託管您與此客戶端JS的鏈接並自動配置您的AppLink。

如果你寧願自己建了,這裏是你可以使用iOS的Safari瀏覽器的代碼:

<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>