【问题标题】:iOS doesn't open Zoom app using Xamarin Essentials Launcher.OpenAsynciOS 不使用 Xamarin Essentials Launcher.OpenAsync 打开 Zoom 应用
【发布时间】:2020-12-15 04:14:56
【问题描述】:

我的 xamarin.forms 应用旨在使用 Launcher.OpenAsync() 使用“zoomus://zoom.us/join?confno=1234567890&pwd=123456”形式的 uri 方案在移动设备上加入 Zoom 会议。

这在 Android 上运行良好,但在 iOS 上似乎根本没有做任何事情。我事先打电话给Launcher.CanOpenAsync(),然后返回true,所以uri应该没问题。 Zoom 应用程序已安装。在 info.plist 中,我已将 zoomus(和 zoom)添加到 LSApplicationQueriesSchemes

我的代码如下所示:

private void RunZoomAsync()
{
    Task zoomTask = Task.Run(async () =>
    {
        if (await Launcher.CanOpenAsync(selectedMedia.Uri))
        {
            Message = "Launching Zoom";
            await Launcher.OpenAsync(selectedMedia.Uri).ConfigureAwait(false);
        }
        else
        {
            Message = "Zoom not found. You must install Zoom from your App Store";
        }
    });
}

我在屏幕上看到了这条消息,所以我知道它正在处理正确的代码。

我尝试通过电子邮件将相同的链接发送到 iPhone,但也没有任何效果。 (我在 Android 手机上尝试过,电子邮件应用程序甚至不会将链接显示为超链接)。 iPhone 或我的应用程序中是否有允许深度链接的设置?

您可能已经猜到了,我通常不是 iPhone 用户。我正在使用旧的 iPhone 6 进行测试,运行 iOS 12.4.8。

曾向Zoom开发者论坛求助,有人建议在iOS中使用url scheme时,有一个AppDelegate函数需要重写:

func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool

我猜以上不是 C#,Essentials Launcher 类处理 iOS 中所需的任何内容。

我错过了什么,还是这是一个错误?非常感谢任何帮助。

【问题讨论】:

  • 在 iOS 9 及更高版本中,Apple 强制执行应用程序可以查询的方案。要指定要使用的方案,您必须在 Info.plist 文件中指定 LSApplicationQueriesSchemes。检查docs.microsoft.com/en-us/xamarin/essentials/…
  • @LucasZhang-MSFT 谢谢,我已经这样做了,见上文。我读到“如果 OpenAsync 之前从未从您的应用程序中打开此设备上的目标应用程序,iOS 将提示用户一次允许您的应用程序打开它”。这是否意味着提示失败了?
  • 这里有一个类似的问题stackoverflow.com/questions/63594273/… 可能对你有帮助。\
  • 再次感谢@LucasZhang-MSFT,我想我已经完成了该链接中建议的一切。
  • 您确定可以在设备上定期打开这些链接吗?就像您通过电子邮件收到它们一样?

标签: c# ios xamarin.forms launcher xamarin.essentials


【解决方案1】:

我尝试通过电子邮件向 iPhone 发送相同的链接,但确实如此 也没有。 (我在 Android 手机和电子邮件应用程序上尝试过 甚至不会将链接显示为超链接)。有没有设置 在 iPhone 上或我的应用程序中,以允许深度链接?

如果您已经安装了该应用程序,并且您使用了正确的协议并且您的硬件和操作系统工作正常,那么这需要工作。您的问题不是由您的代码引起的(除非您使用了错误的协议),所以这是本网站的答案,因为它不处理非编码问题。

为什么您的 Zoom 应用程序无法按预期运行 - 您应该从 Zoom 客户支持开始,因为他们最有能力为您提供答案(如果存在),但您的设备极有可能在某些方面出现故障.

【讨论】:

  • 谢谢,这很有用。我已经接近 Zoom,但我只是想检查我的 Xamarin 代码是否正确。我会回到 Zoom 的人。
【解决方案2】:

我的问题是我没有在主线程中运行 Launcher,所以(我假设)Zoom 应用程序无法访问屏幕。所以我只是改变了:

Task zoomTask = Task.Run(async () =>

到:

MainThread.BeginInvokeOnMainThread(async () =>

它现在可以工作了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    • 2022-01-24
    • 2013-04-28
    • 1970-01-01
    • 2021-10-18
    • 2019-11-01
    • 1970-01-01
    相关资源
    最近更新 更多