【问题标题】:Xamarin Forms open another iOS AppXamarin Forms 打开另一个 iOS 应用程序
【发布时间】:2018-07-18 07:27:05
【问题描述】:

在我的 Xamarin Forms 应用程序中,我想通过单击按钮打开另一个应用程序。该示例适用于 facebook 应用程序,但它也应该适用于其他应用程序。我读了很多关于herehere 的内容。基于两个解决方案/链接,我在我的 iOS 项目中生成了一个类:

[assembly: Xamarin.Forms.Dependency(typeof(OpenAppiOS))]
namespace FieldServicePortable.iOS.Common
{
    public class OpenAppiOS : IOpenApp
    {
        public OpenAppiOS() { }

        public void OpenExternalApp()
        {
            var nsurl = "facebook://";
            var request = new NSUrl(nsurl);

            try
            {
                var isOpened = UIApplication.SharedApplication.OpenUrl(request);   //Open App
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }
}

我还通过这行扩展了Info.plist

<key>LSApplicationQueriesSchemes</key>
<array>
   <string>facebook</string>
</array>

我不想在共享项目中的编码部分打扰您,因为这部分有效。

点击应用中的按钮后,代码将被执行,但没有任何反应。甚至没有抛出异常。变量isOpened 的值为false

所以我的问题是:

  1. 当然,我的代码中是否遗漏了什么?
  2. 对应用程序有什么要求,应该打开吗?
  3. iOS 中是否需要一些配置?

【问题讨论】:

  • 仅供参考,称为深度链接

标签: c# ios xamarin.forms


【解决方案1】:

尝试使用 Device.OpenUri(new Uri("fb://"));

也可以参考xamarin how to open facebook and twitter app from my ios app by a button

【讨论】:

  • 感谢您的重播。我测试了它,它工作正常。但是你在哪里找到这个 URI,因为我还想打开其他应用程序,例如“Anveo Mobile”?
  • 所以最后我用 iMazing 下载了应用程序并解压缩了 .ipa 并在 info.plist 中查找“CFBundleURLSchemes”。这就是我要找的名字。 :)
猜你喜欢
  • 2020-12-15
  • 2017-10-12
  • 2017-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多