2017-08-15 79 views
0

當我嘗試在Facebook應用程序中打開鏈接時,Branch.io無法找到我的應用程序。它總是重定向到App Store,即使我們的應用程序已經安裝在設備上。我已閱讀https://blog.branch.io/deep-linking-from-facebook-in-2017/並實施了Deepviews,但即使從那裏我也無法進入該應用。它仍然打開App Store。Facebook iOS中的Branch.io鏈接應用程序

我假設問題出現在我們的Branch.io配置中,但我找不到它。

注:

  1. 我實現了通用的鏈接和他們工作得很好(除了這個問題與Facebook)。
  2. 當我在Facebook應用程序中按下「在Safari中打開」時,它也可以正常工作。
  3. 當應用程序已安裝時,Deepview總是顯示「獲取應用程序」而不是「打開應用程序」。

這是我如何創建鏈接:

- (BranchUniversalObject *)generateBranchObjectFor:(MBMediaObject *)object { 
    NSArray<NSString *> *pathComponents = [object.shareLink pathComponents]; 
    NSString *uid = [[pathComponents subarrayWithRange:NSMakeRange(pathComponents.count-2, 2)] componentsJoinedByString:@"/"]; 
    BranchUniversalObject *branchObject = [[BranchUniversalObject alloc] initWithCanonicalIdentifier:uid]; 
    branchObject.title = object.name; 
    branchObject.imageUrl = object.imageURL.absoluteString; 
    if ([object isKindOfClass:MBSong.class]) { 
     branchObject.contentDescription = ((MBSong *)object).artistName; 
    } else if ([object isKindOfClass:MBAlbum.class]) { 
     branchObject.contentDescription = ((MBAlbum *)object).artist.name; 
    } 
    return branchObject; 
} 

- (BranchLinkProperties *)generateBranchLinkPropertiesForObject:(MBMediaObject *)object channel:(NSString *)channel { 
    BranchLinkProperties *properties = [BranchLinkProperties new]; 
    properties.feature = @"sharing"; 
    properties.channel = channel; 
    [properties addControlParam:@"$deeplink_path" withValue:[[object.shareLink stringByReplacingOccurrencesOfString:@"http://" withString:@""] stringByReplacingOccurrencesOfString:@"https://" withString:@""]]; 
    return properties; 
} 

NSString *shortURLString = [[self generateBranchObjectFor:object] getShortUrlWithLinkProperties:[self generateBranchLinkPropertiesForObject:object channel:@"twitter"]]; 

這是我們的鏈接設置:

+0

我有完全相同的問題。深度鏈接來自Safari,但不是來自Facebook。我跟着你一樣的博客文章,不知道爲什麼它不起作用。我嘗試編輯deepview HTML以將屬性「al:web:should_fallback」添加爲false,但仍然無效。我現在很難過。分公司的文件非常混亂。 –

回答

1

Branch.io這裏Amruta:

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

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

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

+0

非常感謝Amruta!這確實使應用程序被打開,而不是App Store。如果將它添加到文檔中以便人們更容易發現它,它會很棒。 我現在的另一個問題是,deepview中的按鈕總是說「得到應用程序」,即使現在它直接安裝到應用程序。有什麼缺失,以便按鈕說「打開應用程序」,而不是? –

+0

@RafaelAlencar非常感謝您的反饋。我已經更新了我們網站上的文檔,它應該在一兩天內生效。 –

+0

@RafaelAlencar默認的Deepview CTA配置爲在應用程序未安裝時顯示「獲取應用程序」,並在安裝應用程序時顯示「打開應用程序」。但是,Deepview CTA按鈕取決於分支機構首次打開或安裝應用程序。因此,如果用戶從App Store有機地安裝應用程序,Branch將無法將Deepview CTA從「獲取」更改爲「打開」。要將Deepview CTA從「獲取」更改爲「打開」,用戶需要點擊Deepview CTA按鈕並直接深入鏈接到您的應用。我們的後端系統可能需要大約30分鐘才能更新。 –

相關問題