Xamarin(Android / iOS)深度链接-通过URL打开应用程序(自定义或不自定义)

时间:2018-08-20 13:22:00

标签: android ios xamarin deep-linking custom-url

我已经使用Sharepoint和Office365制作了一个网站,并使用Xamarin制作了一个用于Android和iOS的应用程序。用户通过电子邮件接收通知,并附加了我网站上的一些URL。从移动设备打开这些URL时,我想将其打开到应用程序中,但是在实现该URL时遇到了很多问题。

我知道有两种打开链接的方法,可以通过通用链接(iOS)-应用链接(Android)或使用自定义URL方案来实现深度链接。

  • 当尝试实施自定义URL方案时,我发现Outlook,Gmail和其他电子邮件应用无法识别自定义链接,而是将自定义链接显示为简单文本,因此无法单击链接在手机上。因此example:// something不能从电子邮件中单击。有关如何解决此问题的任何想法?

  • 在尝试实现通用链接(iOS)时,您需要将AASA(苹果应用程序站点关联)文件上传到您的域中,该文件必须位于域的根目录中或./well-known/文件夹。问题是,使用Sharepoint和Office365建立网络时,无法将文件放在这些位置。苹果公司的支持告诉我,唯一的解决方案是更改网络,在我看来,这是不可能的。

我只能使用意图过滤器在Android版应用中实现电子邮件的打开链接。这项工作正常,但我需要在Android和iOS中打开相同的链接。

我可以将通过电子邮件发送的链接的格式从https://mywebbexample.com更改为myapp://example.com。

关于如何进行的任何想法?

谢谢。

1 个答案:

答案 0 :(得分:0)

很难从第一个来源复制。以下是在xamarinhelp.com注册Uri方案的方法,以及创建launch mobile app by url示例的示例:

Device.BeginInvokeOnMainThread(() => {
    Xamarin.Forms.Device.OpenUri(new Uri("skype://555-1111"));
});

自定义方案已通过Gmail等进行了过滤,因此您可以通过以下方式实现:

<a href="my-app://deep-link" href="https://example.com/?link=123" href="my-app://deep-link">Open in app</a>

如果您使用常规https链接,请按用户代理将Android和iOS设备分开,然后使用301或302 HTTP重定向重定向到my-app:// deep-link。或Android版本(如果其为用户代理)。我在工作时正在这样做,并且效果很好,所以对您来说也应该如此?