【问题标题】:iOS: Excluding certain URLs when running webviewiOS:运行 webview 时排除某些 URL
【发布时间】:2015-12-08 04:18:33
【问题描述】:

我正在使用 Swift,并且在我的原生应用程序的 WebView 中嵌入了基于 Web 的内容(外部网页)。同样,在该网页上,即应用内,我需要在 Safari 中打开一个链接,而不是在应用中。网页上的 HTML 目标 _blank 代码不起作用(我希望它这么简单),正在寻找在 Swift 中执行此操作的正确代码。

我已将此代码用于 uiwebview:

@IBOutlet var news: UIWebView!
   var theURL = "http://"

override func viewDidLoad() {
    super.viewDidLoad()
    loadWebPage()

}
func loadWebPage(){
    let requestURL = NSURL (string: theURL)
    let URLrequest = NSURLRequest (URL: requestURL!)
    news.loadRequest(URLrequest)

我已将此代码用于 WKNaviagtionDelegate:

func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction, decisionHandler: ((WKNavigationActionPolicy) -> Void)) {
    if (navigationAction.navigationType == WKNavigationType.LinkActivated && !navigationAction.request.URL!.host!.lowercaseString.hasPrefix("http://")) {
        UIApplication.sharedApplication().openURL(navigationAction.request.URL!)
        decisionHandler(WKNavigationActionPolicy.Cancel)
    } else {
       decisionHandler(WKNavigationActionPolicy.Allow)
    }

最好的,德鲁

【问题讨论】:

  • 你能告诉我们你已经尝试过什么(相关代码sn-ps等)吗?
  • 我刚刚用我使用的两种形式的代码更新了我的帖子。

标签: html ios swift webview uiwebview


【解决方案1】:

因为您需要创建一个看起来像链接的按钮。

这应该可以解决问题:

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

【讨论】:

  • 感谢您的回复,但我已经知道该代码。我被苹果拒绝了,因为我不够友好。我正在寻找一个代码,它会导致用户在输入某个 url 时退出 uiwebview。
  • 您希望您的应用运行什么版本的 IOS?
  • 我的 iOS 版本设置为 7.0 及更高版本,我正在运行 xcode 6.4。
  • 你能检查一下苹果的政策吗?像 12.3 一样,应用程序只是网络剪辑、内容聚合器或链接集合,可能会被拒绝 [link]developer.apple.com/app-store/review/guidelines/#functionality
  • 感谢您提请我注意,但我还有应用程序的其他部分,包括紧急号码、地图和游戏。我正在尝试制作一个让学生可以轻松浏览和理解网站的部分。
【解决方案2】:

如果按钮实际上在 WebView 中的网页上...除非您在 iOS 中操作链接,否则该链接不会真正由应用程序控制。看起来按钮上的 HTML target="_new" 标记可能适用于更高版本的 iOS。这是 iOS 7 中的一个错误,已在 7.0.3 中修复。尝试使用按钮上带​​有 HTML 目标标记的应用程序的更高 iOS 版本目标。 How to open Safari from a WebApp in iOS 7

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多