2017-04-20 69 views
1

我需要使用Xamarin iOS爲我的應用程序添加深層鏈接功能。 我info.plist看起來是這樣的:深入鏈接Xamarin iOS

<key>CFBundleURLTypes</key> 
<array> 
<dict> 
    <key>CFBundleURLSchemes</key> 
    <array> 
    <string>domine.somthing/index.html?UV</string> 
    </array> 
    <key>CFBundleURLTypes</key> 
    <string>com.domine.somthing/index.html?UV</string> 
</dict> 

我似乎不工作由於URL 「/」 字符。 我應該如何編寫CFBundleURLTypesCFBundleURLSchemes URL值才能使其工作?

回答

2

深層鏈接可以將用戶直接返回到您的應用程序。 在像您那樣爲您的應用程序添加URI支持之後,只需單擊包含應用程序名稱的URL即可啓動您的應用程序,但看起來您正在填寫CFBundleURLSchemesCFBundleURLTypeswith,並顯示錯誤的值。

CFBundleURLName - 通常,這對應於您的 應用程序的軟件包ID。請參閱Apple's Development doc瞭解更多信息。

CFBundleURLSchemes - 包含URL方案名稱的字符串數組, 通常至少是您應用程序的名稱(不含空格)。支付 注意確保這些值對您的應用程序是唯一的。

看看這個例子:

<key>CFBundleURLTypes</key> 
    <array> 
    <dict> 
     <key>CFBundleURLName</key> 
     <string>com.yourcompany.yourapp</string> 
     <key>CFBundleURLSchemes</key> 
     <array> 
     <string>appname</string> 
     </array> 
    </dict> 
    </array> 

現在點擊設備將啓動您的應用程序上由appname://的URL。

如果您想要將用戶發送到應用程序的特定部分,您需要向此URL添加參數,從而建立深層鏈接。這是一個帶路徑和查詢的例子:在這裏你可以處理架構的執行正確的應用,路由

appname://custompath?customquery=customvalue 

當用戶點擊包含您的方案(appname://)網址,您的應用程序的委託調用和具體方法OpenUrl(UIApplication application, NSUrl url, string sourceApplication, NSObject annotation)基於模式參數(如果提供)。

+0

我只有一個電子郵件鏈接,我有三個應用程序,如Windows應用程序和移動網站也是一個移動應用程序。我如何處理一個鏈接的所有應用程序,是否有可能與深層鏈接或哪種方法。電子郵件打開的環境我需要瀏覽該應用程序 – shamnad

+0

我對HTML頁面的這個問題提出了一個棘手的解決方案。我創建了一個HTML頁面,我可以檢查頁面是在移動設備還是桌面上加載。如果在移動設備上加載,我可以使用普通模式,如果未安裝應用程序,它將導航到應用程序,它會顯示Safari無法打開該應用程序並導航到移動網站。這可以通過javascript'$(window).blur(function()'來完成,任何人都可以根據自己的需求做下一個級別,但我強烈建議嘗試通用鏈接而不是深度鏈接 – shamnad