2012-03-13 72 views
14

Trên iPhone của tôi, tôi chỉ nhận thấy rằng nếu tôi thực hiện Tìm kiếm của Google (trong Mobile Safari) và chọn kết quả trên quora.com, trang kết quả sẽ khởi chạy ứng dụng Quora gốc trên điện thoại của tôi.Cách chuyển hướng từ ứng dụng Mobile Safari sang ứng dụng Native iOS (như Quora)?

Điều này được thực hiện như thế nào? Cụ thể, đó có phải là phát hiện tác nhân người dùng và việc sử dụng lược đồ URL iOS không? Nó có thể cho biết ứng dụng gốc được cài đặt và/hoặc chuyển hướng đến kho ứng dụng không?

Trả lời

4

Bạn có thể kích hoạt ứng dụng của mình để khởi chạy sử dụng custom URL scheme, được đăng ký bởi ứng dụng của bạn với thời gian chạy iOS. Sau đó, trên trang web của bạn, hãy viết mã để phát hiện User-Agent đến và nếu iOS được phát hiện, hãy tạo URL tùy chỉnh của bạn thay vì URL tùy chỉnh thông thường.

+4

Vì vậy, những gì sẽ xảy ra nếu họ không cài đặt ứng dụng? – Callmeed

+0

Câu hỏi hay, vì không có cách xử lý tiêu chuẩn này. Nhưng [tại đây] (http://stackoverflow.com/questions/1108693/is-it-possible-to-register-a-httpdomain-based-url-scheme-for-iphone-apps-like/1109200#1109200) là một cách giải quyết tốt được đăng bởi người dùng khác của trang web này. – Perception

+0

Giải pháp nào để phát hiện nếu ứng dụng của bạn được cài đặt mà không có thông báo lỗi? – kkurni

15

Tôi reposting một câu trả lời có liên quan của riêng tôi (nhưng ban đầu của Ruby-on-Rails cụ thể) câu hỏi từ đây: Rails: redirect_to 'myapp://' to call iOS app from mobile safari

Bạn có thể chuyển hướng sử dụng javascript window.location.

đang

mẫu:

<html><head> 
    <script type="text/javascript"> 
     var userAgent = window.navigator.userAgent; 
     if (userAgent.match(/iPad/i) || userAgent.match(/iPhone/i)) { 
     window.location = "myiosapp://" 
     } 
    </script> 
    </head> 
    <body> 
    Some html page 
    </body> 
</html> 
+0

Không hoạt động trên thiết bị iOS 7 của tôi. – Jonny

+0

Không hoạt động trên thiết bị iOS 7 của tôi NẾU tôi khởi chạy ứng dụng web từ một webclip ở chế độ toàn màn hình. Nó không có cài đặt chế độ toàn màn hình cho webclip. – Jonny

+0

Thao tác này sẽ không hoạt động nếu ứng dụng chưa được cài đặt. – kkurni

5

Chỉ cần một sự cải thiện nhỏ của mã JS, nếu ứng dụng không được cài đặt, nó sẽ gửi người dùng đến iTunes Store;)

<script type="text/javascript"> 

    // detect if safari mobile 
    function isMobileSafari() { 
     return navigator.userAgent.match(/(iPod|iPhone|iPad)/) && navigator.userAgent.match(/AppleWebKit/) 
    } 
    //Launch the element in your app if it's already installed on the phone 
    function LaunchApp(){ 
     window.open("Myapp://TheElementThatIWantToSend","_self"); 
    }; 

    if (isMobileSafari()){ 
     // To avoid the "protocol not supported" alert, fail must open itunes store to dl the app, add a link to your app on the store 
     var appstorefail = "https://itunes.apple.com/app/Myapp"; 
     var loadedAt = +new Date; 
     setTimeout(
      function(){ 
      if (+new Date - loadedAt < 2000){ 
       window.location = appstorefail; 
      } 
      } 
     ,100); 
     LaunchApp() 

    } 

</script> 
Các vấn đề liên quan