如何加载Web视图中的URL链接并将其保留在SWIFT中的该Web视图中 [英] How to load a url link that is inside a web view and keep it in that web view in SWIFT

查看:78
本文介绍了如何加载Web视图中的URL链接并将其保留在SWIFT中的该Web视图中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的网页视图的网页底部有链接。我有办法处理它们被点击,但它只是将它们打开到一个新的Safari浏览器中。这不是我想要的。我希望他们留在网页视图中,让我轻松地浏览它们。有没有办法做到这一点?

I have a web view that has a webpage with links at the bottom. I have a way to deal with them being clicked, but all it does is open them into a new safari browser. This is not what I want.I would like for them to stay inside the web view and allow me to navigate them easily like that. Is there a way to do this?

我尝试过只使用常规网页视图,但是底部的链接无效。

I have tried just using a regular web view, but then the links at the bottom will not work.

这是我到目前为止所拥有的:

Here is what I have so far:

class ViewController: UIViewController, UIWebViewDelegate {


@IBOutlet weak var myWebview: UIWebView!
@IBOutlet weak var returnButton: UIButton!

override func viewDidLoad() {
    super.viewDidLoad()

    prettyReturnButton(returnButton)

    let url = NSURL(string: "mywebpage")

    myWebview.delegate = self

    print("Web page:" , url)
    let requestObj = NSURLRequest(URL: url!);
    myWebview.loadRequest(requestObj);
    myWebview.keyboardDisplayRequiresUserAction = true



}

func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
    switch navigationType {
    case .LinkClicked:
        // Open links in Safari
        //let newRequestObj = NSURLRequest(URL: request.URL!)
       // webView.loadRequest(newRequestObj)
        UIApplication.sharedApplication().openURL(request.URL!)
        return false
    default:
        // Handle other navigation types...
        return true
    }
}


推荐答案

在webview委托中,您将要使用相同的webview导航到新网址。

In the webview delegate you are going to want to navigate to the new url using that same webview.

对于您而言,这意味着在您的交换机案例中,您应该使用
loadRequest

For you this means that inside your switch case you should use loadRequest

loadRequest文档

要解决您的问题,您应该使用<$ c $删除该行c> UIApplication.sharedApplication()。openURL(request.URL!)

To fix your issue you should remove the line using UIApplication.sharedApplication().openURL(request.URL!)

并将其替换为 loadRequest

func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
    switch navigationType {

    case .LinkClicked:
        // Open links in Safari

        guard let newRequest = request as? URLRequest else { return false }

        webView.loadRequest(newRequest)
        return false
    default:
        // Handle other navigation types...
        return true
   }
}

希望这会有所帮助!祝你有愉快的一天!

Hope this helps! Have a nice day!

这篇关于如何加载Web视图中的URL链接并将其保留在SWIFT中的该Web视图中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆