我需要知道一個鏈接是否會打開。如何檢測鏈接是否有效?
回答
請參閱Maximilian Hoffmann's answer瞭解更強大的解決方案。
這種方法很常見 - 劫持超時重定向到一個不同的URL。這種方法適合你嗎?
<a id="applink" href="comgooglemaps://?q=Red+Lobster+Billings">Show map</a>
<script type="text/javascript">
var backup = "http://maps.google.com/?q=Red+Lobster+Billings";
function applink(fail){
return function() {
var clickedAt = +new Date;
setTimeout(function(){
if (+new Date - clickedAt < 2000){
window.location = fail;
}
}, 500);
};
}
document.getElementById("applink").onclick = applink(backup);
</script>
This如果我無法完成我所想的內容,可能會很有用,但我真正希望能夠做的是確定鏈接是否要在用戶之前啓動應用程序(AKA是否安裝該應用程序)點擊鏈接。我想在頁面加載執行一些JavaScript可能可以爲此工作。有什麼想法嗎?我希望我已經清楚了...... – novicePrgrmr
沒有接口詢問鏈接是否可以工作......只能嘗試它並處理結果(不幸)。您可以在bugreport.apple.com上提交移動Safari增強請求,但我想這可能會打開許多隱私問題,這就是Apple不允許這樣做的原因。 –
這個解決方案是否會阻止超時彈出?如果是,那麼這是正確的解決方案。 – novicePrgrmr
沒有讓你知道,如果一個鏈接將工作的方式,但有Safari瀏覽器利用所謂的Smart App Banners
<!DOCTYPE html>
<html>
<head>
<meta name="Google Maps" content="app-id=585027354"/>
</head>
<body>
The content of the document......
</body>
</html>
什麼,它基本上是被檢查是否安裝了一個應用程序。如果未安裝,用戶將被引導至應用商店。如果已安裝,用戶將能夠使用通常使用url方案傳遞的相關數據從網站打開應用程序。 你可以使用如果谷歌地圖。
這樣做的缺點是它只能在Safari上工作,但它仍然比沒有好。
解決方案是在您的頁面上添加一個iframe
的URL方案。如果應用程序未安裝,它會靜默失敗,因此如果打開應用程序,您需要通過計時器檢查是否工作。
// detect iOS
if (['iPhone', 'iPad'].indexOf(navigator.platform) > -1) {
// create iframe with an Apple URL scheme
var iframe = document.createElement('iframe');
iframe.src = 'twitter://';
// hide iframe visually
iframe.width = 0;
iframe.height = 0;
iframe.frameBorder = 0;
// get timestamp before trying to open the app
var beforeSwitch = Date.now();
// schedule check if app was opened
setTimeout(function() {
// if this is called after less than 30ms
if (Date.now() - beforeSwitch < 30) {
// do something as a fallback
}
});
// add iframe to trigger opening the app
document.body.appendChild(iframe);
// directly remove it again
iframe.parentNode.removeChild(iframe);
}
我寫了一個使用這種方法,如果安裝打開iOS上的Twitter的應用程序一個post with a more detailed example。
這比我的答案要好。我更新了我的答案,以鏈接到這一個。 –
- 1. 是否有配置測試檢測無效的符號鏈接?
- 2. 檢測cURL是否有效?
- 3. PHP:如何測試數據庫鏈接是否仍然有效?
- 4. 如何檢查Rss供稿鏈接是否有效
- 5. 如何檢查URL是否與播放框架有效鏈接
- 6. 如何檢查給定的鏈接是否有效?
- 7. 如何檢查數據庫鏈接在Oracle中是否有效?
- 8. 檢測UIWebView是否顯示www.example.com鏈接
- 9. 如何檢測extern「C」是否生效
- 10. 如何檢測鏈接後的元素是否是範圍
- 11. 如何檢查ActiveRecord的inverse_of檢測是否有效?
- 12. 以下鏈接結構是否有效?
- 13. iPhone測試視頻鏈接是否有效
- 14. 如何檢測瀏覽器是否支持itms鏈接?
- 15. 如何檢測Perl中符號鏈接是否損壞?
- 16. 如何檢測鏈接是否來自特定域
- 17. 如何檢測Bash中符號鏈接是否被破壞?
- 18. 檢查有效鏈接(URL)
- 19. 以編程方式檢查YouTube視頻鏈接是否有效?
- 20. 測試鏈接是否爲YouTube鏈接。
- 21. 如何檢測藍牙是否連接?
- 22. 如何檢測屏幕是否連接?
- 23. 如何測試方法是否有效?
- 24. 檢查連接是否有效
- 25. 檢查mysql連接是否有效
- 26. 是否有鏈接檢查器吞嚥?
- 27. 檢測是否有超鏈接被點擊
- 28. 如何檢查UserControl是否有效
- 29. 如何檢查userinput是否有效?
- 30. 如何檢查BST是否有效?
對話在這裏http://stackoverflow.com/questions/13044805/how-to-check-if-an-app-is-installed-from-a-web-page-on-an-iphone – Bechir