深入链接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 “/” 字符。 我应该如何编写CFBundleURLTypes
和CFBundleURLSchemes
URL值才能使其工作?
答
深层链接可以将用户直接返回到您的应用程序。 在像您那样为您的应用程序添加URI支持之后,只需单击包含应用程序名称的URL即可启动您的应用程序,但看起来您正在填写CFBundleURLSchemes
和CFBundleURLTypeswith
,并显示错误的值。
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)
基于模式参数(如果提供)。
我只有一个电子邮件链接,我有三个应用程序,如Windows应用程序和移动网站也是一个移动应用程序。我如何处理一个链接的所有应用程序,是否有可能与深层链接或哪种方法。电子邮件打开的环境我需要浏览该应用程序 – shamnad
我对HTML页面的这个问题提出了一个棘手的解决方案。我创建了一个HTML页面,我可以检查页面是在移动设备还是桌面上加载。如果在移动设备上加载,我可以使用普通模式,如果未安装应用程序,它将导航到应用程序,它会显示Safari无法打开该应用程序并导航到移动网站。这可以通过javascript'$(window).blur(function()'来完成,任何人都可以根据自己的需求做下一个级别,但我强烈建议尝试通用链接而不是深度链接 – shamnad