2014-05-01 54 views
0

我想通過JS檢測用戶是否安裝了特定的應用程序。來自瀏覽器的移動應用程序檢測

我知道應用商店標記,如果他們沒有安裝它,它將彈出通用的「下載此應用程序」。我不是在問這個。

我有一個概念,但它不完整。這會嘗試定位iPhone和Android設備。

知道與特定前綴的鏈接可以觸發一個應用程序來打開:

  1. 目標與JS一個隱藏的iframe打開前綴來觸發該應用程序的URL
  2. 該頁面會觸發一個崗位信息如果加載,則返回父級,表示應用程序未打開。
  3. 如果應用程序存在,則消息將永遠不會被觸發回父級,因爲它會在應用程序中打開。

不幸的是,我的客戶不希望應用程序自動打開(或試圖打開),但只需知道它是否安裝。

想法?在我的邏輯中出現錯誤?變通?現有的解決方案?

感謝

+0

您定位的是哪個系統? Android,iOS? –

+0

@still_learning更新。 –

+0

作爲最近正在研究這一努力的人,我很遺憾地說你可能會走向死衚衕。我們最接近的就是啓動應用程序,或者在啓動失敗時進入appstore。 (對於Android,Intent鏈接將有助於實現更好的用戶體驗 - 但不是特別要求的) – Katana314

回答

0

有可能沒有辦法做到這一點,因爲一般來講你不準從網頁上閒逛在用戶的設備上。即使用戶安裝或未安裝的應用程序不是最敏感的個人信息,但將該信息暴露給來自網絡的腳本仍然有點安全/隱私問題。應用商店標記可能是您將要獲得的最接近的標記,因爲它是提供類似但受保護的功能的官方API。

+0

有用的信息。一般來說,這更好地發表評論,雖然 - 因爲它不是一個解決OP的問題(並不是說任何解決方案,甚至存在) – Katana314

+1

這不是一個有效的答案,雖然說一些東西不存在,給它的推理?我不是要求更多的信息,我只是在說明他的問題可能的解決方案。道歉雖然這是可憐的形式 - 我在這裏是新的,仍然試圖找出什麼時候你應該張貼的地方之間的區別。 –

+0

雖然這是我理解SO的問題/回答政策的方式 - 例如,如果問題具有不完整的信息,那麼它也可能需要評論,並且當時不應該有答案。同樣的道理,如果有人問「我如何時間旅行」,評論迴應是「時間旅行實際上是不可能的」,有人可以將他們的問題修改爲「好吧,我真的想從5分鐘前獲取用戶數據」 - 有人可以回答「以後如何保存數據」 – Katana314

0

我可以想出兩種方法來解決你的問題,但沒有一個特別好。從iOS 6開始,您可以使用Smart App Banners來推廣應用程序。

最明顯的解決方案是隱藏用戶的任何操作,例如,通過阻止活動在發佈URL請求後顯示出來。我對此沒有任何經驗,也無法告訴你可以在多大程度上隱藏它。

說實話,我不知道第二種方法是否適用於移動設備。它已被廣泛用於桌面應用程序,並允許應用程序間通信 - 包括瀏覽器和應用程序之間的通信。但是,由於移動設備通常具有較高的安全限制,可能性可能會受到限制。這是一個非常理論化的建議,因爲我非常肯定它不適合,不管它是否可能。
您的應用必須在未使用但固定的端口上提供小型HTTP服務器。您的JavaScript代碼然後可以使用JSONP與應用程序進行通信(假設瀏覽器的安全限制不阻止此操作)。如果通信失敗,您可能會認爲該應用程序未安裝。

在任何人試圖批評這種方法之前,讓我說這是一個理論上的可能性,可能會不穩定,並且不適用於大多數應用程序。運行HTTP服務器的努力對於這樣的次要任務來說太高了。

相關問題