【问题标题】:Xamarin (Android/iOS) Deep Linking - Opening App via URL (custom or not)Xamarin (Android/iOS) 深度链接 - 通过 URL 打开应用程序(自定义与否)
【发布时间】:2018-08-20 13:21:59
【问题描述】:

我已经使用 Sharepoint 和 Office365 创建了一个 Web,并使用 Xamarin 为 Android 和 iOS 创建了一个应用程序。用户在他们的电子邮件中收到通知,并附有我网站上的一些 URL。从手机打开这些网址时,我想将它们打开到应用程序中,但我遇到了很多问题来实现它。

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

  • 在尝试实现自定义 URL 方案时,我发现 Outlook、Gmail 和其他电子邮件应用程序无法识别自定义链接是什么,并将自定义链接显示为简单文本,因此链接无法点击在手机里。所以 example://something 它不能从电子邮件中点击。关于如何解决这个问题的任何想法?

  • 在尝试实现 Universal Links(iOS) 时,您需要将 AASA(apple-app-site-association) 文件上传到您的域,该文件必须位于您域的根目录或./well-known/ 文件夹。问题是在使用 Sharepoint 和 Office365 制作网站时,您无法将文件放置在这些位置。苹果的支持告诉我,唯一的解决方案是改变网络,在我的情况下这是不可能的。

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

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

知道如何进行吗?

谢谢。

【问题讨论】:

  • 我设法解决这个问题的唯一方法是注册一个 Outlook 检测为超链接的 customURL。我在这里找到了这些前缀:stackoverflow.com/a/934504/10097791 我们在 Android/iOS 中为 wais://example.com 注册了自定义方案,它运行良好。我知道这是一种解决方法,但经过数周的调查,这是第一个可行的解决方案。

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


【解决方案1】:

很难从第一个来源复制。以下是在 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 版本(如果它的用户代理)。我在工作中这样做,效果很好,所以你也应该这样做?

【讨论】:

  • 这不是我要问的,也许我没有正确解释自己。我不需要我的应用程序通过显示在我的应用程序中的 url 打开另一个应用程序。我需要使用来自其他应用(Gmail、Outlook 等)或该应用的浏览器版本的外部链接打开我的应用。
  • 您仍然需要注册 uri 来告诉 Android / iOS 这是您的应用程序吗?从邮件中,您应该使用正常的 url 到您的 API,然后从 API 发送重定向 (301/302) 到正确的?
  • 以防万一您想使用自定义 URL。在这种情况下,是的,您需要注册 uri(在 Android 的 Manifest 和 iOS 的 Inflo.plist 上)。同样,我这样做没有问题,我在电子邮件(不是我的应用程序)中显示 url 有问题,使用自定义 URL 时无法点击。
  • 是的,我告诉过你在你的简报/电子邮件中发送一个 https 链接。
  • 如果我在我的时事通讯/电子邮件中发送和 https 链接,我只能用 Android 打开它们,而不是 iOS。对于 iOS,您不能在 info.plist 中将 https 注册为自定义 URL
猜你喜欢
  • 2015-09-22
  • 2016-05-07
  • 1970-01-01
  • 2016-10-21
  • 1970-01-01
  • 2017-11-16
  • 1970-01-01
  • 2016-06-26
  • 1970-01-01
相关资源
最近更新 更多