UIWebView 未打开已安装的应用程序但在 safari 中打开

Posted

技术标签:

【中文标题】UIWebView 未打开已安装的应用程序但在 safari 中打开【英文标题】:UIWebView not opening the Installed Application but opens in safari 【发布时间】:2017-09-26 07:57:10 【问题描述】:

我正在使用 UIWebview,并且我已经加载了一个 URL,该 URL 显示了打开已安装在我的 iPhone 上的本机应用程序的警报。单击警报时,应用程序不会在 UIWebview 中打开,但是当我在 safari 中测试相同的 URL 时,它可以完美运行。请让我知道我是否遗漏了任何步骤。

还有一个更新上述场景在ios 8.0版本中完美运行,但在上述8.0版本中却没有。我已经尝试过使用 UIWebView 和 WKWebView

提前致谢。

override func viewDidLoad() 
    super.viewDidLoad()
    let webV    = UIWebView()
    webV.frame  = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height)
    webV.loadRequest(NSURLRequest(url: NSURL(string: "someURL")! as URL) as URLRequest)
    webV.delegate = self
    self.view.addSubview(webV)


【问题讨论】:

始终显示您尝试过的代码 【参考方案1】:

在 webView 中加载 url 的简单方法。

@IBOutlet weak var webview: UIWebView!


    override func viewDidLoad() 
            super.viewDidLoad()
            webview.loadRequest(URLRequest(url: URL(string:"https://www.google.com")!))
        

【讨论】:

为什么不试试webkit @Anbu.Karthik 我已经像上面一样加载了 URL,但是在加载 URL 后,Webview 中出现了一个弹出窗口,通过单击警报没有操作来打开 Native 应用程序。但是当我在 safari 中加载相同的 URL 时,它可以完美地工作。 @Anbu.Karthik 问题是在 UIWebView 还是在加载的透视 URL 中。【参考方案2】:

看起来 UIWebView 没有将 URL 转发到系统,因此它可以处理其他应用程序的启动。

如果您的应用程序的要求允许将该 webView 替换为另一个视图元素,例如 UIButton,我会鼓励在单击 UIButton 时使用 UIApplication 打开 URL:

斯威夫特 3:

  @IBAction func didClickButton(sender: Any)
    UIApplication.shared.openURL(URL(string: "<your_url>")!)
  

希望对你有帮助!

【讨论】:

@Lujan 点击事件在 Webview 中处理

以上是关于UIWebView 未打开已安装的应用程序但在 safari 中打开的主要内容,如果未能解决你的问题,请参考以下文章

Syncfusion 控件未在 iOS 本机 UIWebView 上加载

当 UIWebView 打开 PDF 时 webViewDidFinishLoad 未触发

. net framework 4.7安装未成功,提示已处理证书链,但是在不受信任程序信任的根证书?

链接未在 uiwebview 中打开

组件已安装但模板标签未在生产环境中呈现(但在开发中呈现): Nuxtjs Vuejs Vuetifyjs Rollupjs

带有 iOS 应用的 Firebase 测试实验室 - 应用已安装但未打开