深入链接Xamarin iOS

问题描述:

我需要使用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值才能使其工作?

深层链接可以将用户直接返回到您的应用程序。 在像您那样为您的应用程序添加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