如何加载Web视图中的URL链接并将其保留在SWIFT中的该Web视图中

时间:2016-10-20 03:26:44

标签: ios swift uiwebview uiwebviewdelegate

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

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

这是我到目前为止所做的:

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
    }
}

2 个答案:

答案 0 :(得分:3)

将代表提供给您的UIViewcontroller:UIWebViewDelegate

 let url = NSURL(string: "http://www.djmazacool.com")
 let req = NSURLRequest(URL: url!)
 YOURWEBVIEW.delegate = self
 YOURWEBVIEW.loadRequest(req)



func webViewDidStartLoad(webView: UIWebView)
{
        // start animation
        print("start loaded call")
}
func webViewDidFinishLoad(webView: UIWebView)
{
        // load url complete
        print("loading done call")
}

输出:

Its my webView Output load url

不要忘记在.plist文件中添加此属性。

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

.plist file code

答案 1 :(得分:2)

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

对你而言,这意味着你应该使用你的开关盒内  Test.Print();

loadRequest documentation

要解决您的问题,您应该使用loadRequest

删除该行

并将其替换为UIApplication.sharedApplication().openURL(request.URL!)

loadRequest

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