首页 文章

从Xamarin.Forms打开Native iOS应用程序

提问于
浏览
2

我在我的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));

但它不起作用 .

2 回答

  • 1

    这基本上就是你如何做到的 .

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

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

    让我们说在每个平台上打开 Map 应用程序,您将使用这些网址方案:

    // 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创建自己的实现 .

  • 1

    请仔细阅读以下链接和附件照片

    链接: - 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())));
                              }
    

相关问题