在 UIWebView 中打开一些项目,在外部浏览器中打开其他项目

Posted

技术标签:

【中文标题】在 UIWebView 中打开一些项目,在外部浏览器中打开其他项目【英文标题】:Open some items in UIWebView, and others in external browser 【发布时间】:2016-01-08 16:17:54 【问题描述】:

我正在创建一个嵌入 UIWebView 的 html5 应用程序。我已将 webview 委托给控制器,并且在 shouldStartLoadWithRequest 上,我正在寻找要在外部浏览器上打开或不打开的 url 模式。

效果很好!

但是当手机没有连接时,我正在加载本地 html 文件。因为 shouldStartLoadWithRequest 在第一次请求时返回 FALSE,offline.html 没有加载

有人做过吗?

【问题讨论】:

请将代码作为文本添加到您的问题中,而不是作为屏幕截图。 抱歉,我的 xcode 在 VMbox 中! 【参考方案1】:

设置路径后立即尝试:

do 
    let path = NSBundle.mainBundle().pathForResource("offline", ofType: "html", inDirectory:"offline")
    let string = try String(contentsOfFile: path!, encoding:NSUTF8StringEncoding)
    webView.loadHTMLString(string, baseURL: NSURL(string: "http://"))
 catch 
    print(error)

let url = NSURL(fileURLWithPath:NSBundle.mainBundle().pathForResource("offline", ofType:"html", inDirectory: "offline")!)
let request = NSURLRequest(URL: url);
webView.loadRequest(request);

我试过了,效果很好。

确保您的“离线”目录是文件夹(蓝色)而不是组(黄色)。

希望对您有所帮助。

【讨论】:

第一个解决方案,是一个很好的解决方案,但不起作用。 offline.html 做白屏 我刚才试了一下,效果很好。重试我的新更改。 我发现了我的问题。我没有触发错误-1003(未找到主机)!移除开关工作完美【参考方案2】:

我发现了问题。我没有触发错误 -1003(未找到主机)!移除开关完美!

【讨论】:

以上是关于在 UIWebView 中打开一些项目,在外部浏览器中打开其他项目的主要内容,如果未能解决你的问题,请参考以下文章

发出 newView Requested 信号时在外部浏览器中打开 URL

为啥我的侧载 Excel Javascript 加载项在外部浏览器中打开,而不是在任务窗格中打开?

如何在外部浏览器而不是应用内(instagram)中打开链接?

Webview 链接在外部浏览器中打开

通过js判断微信QQ等内置浏览器并在外部浏览器打开

如何在点击 android 推送通知时在外部浏览器中打开 url?