2017-07-31 33 views
0

我试着做一个function通过UIWebView,而不是退出我的应用程序开放safari.Although无感澈是我试过的应用程序崩溃打开string ...UIWebView的开弦

TemplateViewController;

这里是我的功能:

let string = OnlineMenulinksTemplate 
     if string.characters.count > 0, let url = URL(string: string), UIApplication.shared.canOpenURL(url) { 
      // valid URL 
      if #available(iOS 10.0, *) { 
       UIApplication.shared.open(url, options: [:], completionHandler: nil) 
      } else { 
       UIApplication.shared.openURL(url) 
      } 
     } 

WebViewController:

import UIKit 

class OpenWebViewController: UIViewController { 


    @IBOutlet weak var webView: UIWebView! 


override func viewDidLoad() { 
     super.viewDidLoad() 

     webView.scrollView.alwaysBounceHorizontal = false 

     // Do any additional setup after loading the view. 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


    } 

所以,我怎么会告诉串被打开,并在UIWebView呈现的?

谢谢:)

+0

什么是您的崩溃报告说? – dirtydanee

+0

好吧,删除了我试过的因为它没有工作。这里是通过Safari浏览器工作的代码,我希望它可以通过我的'UIWebView'呈现。 – RandomGeek

+0

这是什么'OnlineMenulinksTemplate'? – dirtydanee

回答

0

你应该只创建一个URL请求

let request = URLRequest(url: url!) 
webView.loadRequest(request) 
0

只是声明了一个公共的功能,可以说在你的webViewcontroller loadWebView(with string: String)

如果字符串是一个有效的URL,创建一个URLRequest实例,并在您的WebView加载它。另外,请确保您的webView插座已连接到xib文件或故事板中。

class OpenWebViewController: UIViewController { 

    @IBOutlet weak var webView: UIWebView! 

    func loadWebView(with string: String) { 
     guard let url = URL(string: string) else { 
      print("Invalid string -> can not convert to URL") 
      return 
     } 
     let request = URLRequest(url: url) 
     //Force view to be loaded 
     _ = self.view 
     self.webView.loadRequest(request) 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     webView.scrollView.alwaysBounceHorizontal = false 
    } 
} 

使用

let webViewController = OpenWebViewController() 
webViewController.loadWebView(with: "http://google.com") 

Google.com会在你webViewController加载。