【问题标题】:How to open iPhone's default browser?如何打开 iPhone 的默认浏览器?
【发布时间】:2012-02-04 01:33:27
【问题描述】:

我在我的 iPhone 应用程序中放置了一个 Facebook 按钮。单击该按钮并加载 Facebook 登录页面时如何打开 iPhone 的默认浏览器?

【问题讨论】:

    标签: iphone ios facebook uibutton


    【解决方案1】:

    iOS 10 引入了打开 URL 的新方法,见下文:

    斯威夫特 3:

    let url = URL(string:"http://www.booleanbites.com")!
    if #available(iOS 10.0, *) {
        UIApplication.shared.open(url, options: [:], completionHandler: nil)
    } else {
        // Fallback on earlier versions
        UIApplication.shared.openURL(url)
    }
    

    目标 C:

    NSURL *url = [NSURL URLWithString:@"http://www.booleanbites.com"];
    
    if ([[UIApplication sharedApplication] respondsToSelector:@selector(openURL:options:completionHandler:)]) {
        [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:NULL];
    }else{
        // Fallback on earlier versions
        [[UIApplication sharedApplication] openURL:url];
    }
    

    【讨论】:

    • 您的“一些搜索”链接指向“已按下phonegap android home button”。问题是关于带有按钮的 iOS 应用程序,可以在默认浏览器上打开 facebook 主页。我没有看到连接?
    【解决方案2】:
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.facebook.com"]];
    

    【讨论】:

    • openURL 已弃用,您能提出其他替代方案吗?
    【解决方案3】:

    当您打开 iPhone 的默认浏览器时,您的应用程序会进入后台 - 可能会被 iOS 终止。这真的是你想要的吗?用户无法返回您的应用。

    要考虑的几个选项:

    • 将 Facebook iOS 库集成到您的应用程序中。大量编码,因为您需要编写一些 UI 代码来支持集成。另一方面,它是您的应用程序,您可以控制正在发生的事情以及如何对用户操作做出反应

    https://github.com/facebook/facebook-ios-sdk

    • 在您的应用程序中嵌入浏览器,并在您的应用程序中“打开浏览器”。再次,您可以控制正在发生的事情以及如何处理它

    http://developer.apple.com/library/ios/#documentation/uikit/reference/UIWebView_Class/

    重点是:这是您的应用程序。你为什么要强迫用户关闭你的应用程序并开始使用其他东西而没有任何办法回来?

    好吧,您知道所有详细信息,并且基于您想要的默认浏览器。没关系。

    【讨论】:

      【解决方案4】:
      Swift: iOS
      
      var url:NSURL? = NSURL(string:webLink!)
      UIApplication.sharedApplication().openURL(url!)
      

      【讨论】:

        【解决方案5】:

        在斯威夫特中

        UIApplication.sharedApplication().openURL(NSURL(string:"http://www.facebook.com")!)
        

        在目标 C 中

        [[UIApplication sharedApplication] openURL:[NSURL          
        URLWithString:@"http://www.facebook.com"]];
        

        【讨论】:

          【解决方案6】:

          斯威夫特 3:

          let url = URL(string: "http://www.example.com")!           
          if UIApplication.shared.canOpenURL(url) {
              UIApplication.shared.open(url, options: [:], completionHandler: nil)
          }
          

          如果要添加completionHandler:

          let url = URL(string: "http://www.example.com")!           
          if UIApplication.shared.canOpenURL(url) {
              UIApplication.shared.open(url, options: [:], completionHandler: { (success) in
                  print("success!") // do what you want
              })
          }
          

          【讨论】:

            【解决方案7】:

            OpenUrl 已废弃,请使用以下代码。

            NSURL *url = [NSURL URLWithString:@"https://google.com"];
            [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];
            

            【讨论】:

              猜你喜欢
              • 2011-07-01
              • 2021-03-26
              • 1970-01-01
              • 2011-11-19
              • 1970-01-01
              • 1970-01-01
              • 2018-03-18
              • 2011-06-02
              相关资源
              最近更新 更多