【问题标题】:Open Native iOS app from Xamarin.Forms从 Xamarin.Forms 打开本机 iOS 应用
【发布时间】:2018-02-05 18:58:22
【问题描述】:

我的 iPad 中安装了本机 iOS 示例应用程序,还安装了我的示例 xamarin.Forms 应用程序。单击按钮时,我想从 Xamarin.forms 打开本机 iOS 应用程序。我在 info.plist 的原生 iOS 应用中设置了 URL 架构。

如何在单击按钮时从 xamarin.forms 打开本机应用程序。我已经试过了

var request = Device.OnPlatform(
   string.Format("native app url"),
   string.Format("native app url"),
   string.Format("native app url"));

 Device.OpenUri(new Uri(request));

但它不起作用。

【问题讨论】:

    标签: xamarin xamarin.ios xamarin.android xamarin.forms


    【解决方案1】:

    这基本上就是你的做法。

    var url = Device.OnPlatform(iOSUrl, androidUrl, winPhoneUrl);
    
    Device.OpenUri(new Uri(request));
    

    请注意,每个平台在配置url和发送参数的方式上都有一些要求。

    假设要在每个平台上打开地图应用程序,您将使用这些 urls 方案:

    // iOS doesn't like %s or spaces in their URLs, so manually replace spaces with +s
    var iOSUrl = string.Format("http://maps.apple.com/maps?q={0}&sll={1}", name.Replace(' ', '+'), loc);
    
    var androidUrl = string.Format("geo:0,0?q={0}({1})", string.IsNullOrWhiteSpace(addr) ? loc : addr, name);
    
    var winPhoneUrl = $"bingmaps:?cp={loc}&q={name}";
    
    var url = Device.OnPlatform(iOSUrl, androidUrl, winPhoneUrl);
    

    此外,除非您知道其 Url 方案,否则您无法打开任何任意应用程序。

    无论如何,如果 Device.OpenUri() 不能满足您的要求,您最好使用本机 API 创建自己的实现。

    【讨论】:

      【解决方案2】:

      请通过以下链接和附上的照片

      链接:-launch-an-app-from-within-another-iphone

      我在 xamarin 表单中使用以下代码

        NSUrl request = new NSUrl("Camera://");                      
        var canOpen = UIApplication.SharedApplication.CanOpenUrl(new NSUrl(request.ToString()));
                                if (!canOpen)
                                { Task.FromResult(false); }
                                else
                                {
                                    Task.FromResult(UIApplication.SharedApplication.OpenUrl(new NSUrl(request.ToString())));
                                }
      

      【讨论】:

      猜你喜欢
      • 2020-10-25
      • 1970-01-01
      • 2021-03-01
      • 1970-01-01
      • 2015-12-26
      • 1970-01-01
      • 2015-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多