2017-09-21 86 views
0

我試圖讓基本的旅程應用程序橫幅工作。沒有深層次的鏈接(在這個階段),當用戶訪問我們的網站時可以獲得我們的iOS應用,或者在已經安裝的情況下啓動它。 問題在於橫幅總是顯示「get in app store」選項,即使應用程序已安裝在設備上。branch.io:無法從javascript中檢測已安裝的應用程序

我看了Branch.io: javascript detect whether mobile app is installed和其他類似的問題沒有任何幫助。

我已經運行通用鏈接驗證器和ulv_script.sh,它沒有顯示任何問題。

在網頁我做的:

branch.init('My_key_live_xxx', null, function(err, data) { 
    console.log('init...'); 
    console.dir(data); 
}); 

數據屬性看起來調試時,就像如下:

{data: "", data_parsed: {}, has_app: null, identity: null, referring_identity: null, …} 

在AppDelegate中的IOS-應用程序,我什麼都不做,除了:

let branch: Branch = Branch.getInstance() 
     branch.initSession(launchOptions: launchOptions, andRegisterDeepLinkHandler: {params, error in 
      if error == nil { 
       // params are the deep linked params associated with the link that the user clicked -> was re-directed to this app 
       // params will be empty if no data found 
       // ... insert custom logic here ... 
       print("params: %@", params as? [String: AnyObject] ?? {}) 
      } 
     }) 

我想這裏不需要特殊的代碼,直到我真的想鏈接到應用程序中的特定位置。現在我只想應用程序打開(或實際上由於需要打開按鈕,顯示檢測到剛剛被檢測......)

半功能,始終指向應用程式商店,版本是住在case有人想先看到問題:https://www.papereed.com/player

我想我錯過了一些關於branch.io真正重要的東西,希望有人可以提供幫助。 謝謝!

回答

1

由於蘋果方面的限制,當用戶點擊Web瀏覽器(即Safari)上的通用鏈接時,如果鏈接與當前網頁具有相同的域,則不使用通用鏈接打開應用程序,而是在Safari中打開鏈接。你可以閱讀更多關於這個行爲here

爲了克服這個限制,Branch爲Deepview按鈕後面的鏈接使用了一個不同的域,以便被訪問的域與當前網頁不同。 Deepview按鈕後面的鏈接使用格式爲「-alternate.app.link」的域。

請確保您已在授權文件中爲您的應用添加了-alternate.app.link域。您可以查看提供有關如何在此添加域的信息的文檔。

對於「獲取/在應用中打開」按鈕,CTA更新:

這在開發過程中是常見的。由於應用程序經常在設備上重新安裝,分支用於確定應用程序是否安裝在設備上的標誌has_app處於故障狀態。

要強制重置has_app變量從「下載」到「打開」改變之旅的旗幟CTA,請按照下列步驟操作:

  1. 點擊下載按鈕 - 托特他玩或應用這應該重定向商店
  2. 安裝應用
  3. 返回網頁與旅程的旗幟,這應該還是顯示的下載按鈕
  4. 點擊重新下載按鈕 - 該應用程序應打開(一旦你更新的權利文件,包括在旅程配置中指定)和數據應提供給應用程序
  5. 關閉並重新打開網頁與旅程的旗幟 - 旗幟現在應該有一個「打開」按鈕
  6. 點擊「打開「按鈕

請注意,上述步驟僅在開發模式期間才需要用於測試目的。在生產環境中,用戶不會看到這個問題。另請注意,CTA按鈕可能需要一些時間才能更新。高峯時間可能高達30分鐘。

+0

謝謝你,強制復位步驟,你給出了!可能是這個組合和CTA按鈕更新延遲。 – jola

相關問題