如何在Swift中加载UIWebView中的URL?
我有以下代码:如何在Swift中加载UIWebView中的URL?,swift,ios8,Swift,Ios8,我有以下代码: UIWebView.loadRequest(NSURLRequest(URL: NSURL(string: "google.ca"))) 我得到以下错误: “NSURLRequest”不能转换为UIWebView 知道问题出在哪里吗 是实例方法,而不是类方法。您应该尝试以UIWebview的实例作为接收方调用此方法,而不是类本身 webviewInstance.loadRequest(NSURLRequest(URL: NSURL(string: "google.ca")!))
UIWebView.loadRequest(NSURLRequest(URL: NSURL(string: "google.ca")))
我得到以下错误:
“NSURLRequest”不能转换为UIWebView
知道问题出在哪里吗 是实例方法,而不是类方法。您应该尝试以UIWebview的实例作为接收方调用此方法,而不是类本身
webviewInstance.loadRequest(NSURLRequest(URL: NSURL(string: "google.ca")!))
但是,正如@radex在下面正确指出的那样,您也可以利用currying这样调用函数:
UIWebView.loadRequest(webviewInstance)(NSURLRequest(URL: NSURL(string: "google.ca")!))
斯威夫特5
webviewInstance.load(NSURLRequest(url: NSURL(string: "google.ca")! as URL) as URLRequest)
UIWebView loadRequest:使用NSURL对象创建NSURLRequest,然后将请求传递给
UIWebView
,它会将请求的URL加载到web视图中
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let url = NSURL (string: "http://www.google.com");
let requestObj = NSURLRequest(URL: url!);
myWebView.loadRequest(requestObj);
self.view.addSubview(myWebView)
}
更多参考:
试试这个:
@IBOutlet weak var webView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
// Your webView code goes here
let url = URL(string: "https://www.example.com")
let requestObj = URLRequest(url: url! as URL)
webView.load(requestObj)
}
@IBOutlet weak var webView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
let url = URL (string: "url here")
let requestObj = URLRequest(url: url!)
webView.loadRequest(requestObj)
// Do any additional setup after loading the view.
}
///////////////////////////////////////////////////////////////////////
如果您想使用webkit
@IBOutlet weak var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
let webView = WKWebView(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.webView.frame.size.height))
self.view.addSubview(webView)
let url = URL(string: "your URL")
webView.load(URLRequest(url: url!))`
将URL加载到WebView非常简单。只需在故事板中创建一个WebView,然后就可以使用以下代码加载url
let url = NSURL (string: "https://www.simplifiedios.net");
let request = NSURLRequest(URL: url!);
webView.loadRequest(request);
简单到只有3行代码:)
参考:
试试这个
对于Swift 3.1及以上版本
let url = NSURL (string: "Your Url")
let requestObj = NSURLRequest(url: url as! URL);
YourWebViewName.loadRequest(requestObj as URLRequest)
Swift 3不再在URL和URLRequest上使用NS前缀,因此更新后的代码为:
let url = URL(string: "your_url_here")
yourWebView.loadRequest(URLRequest(url: url!))
Swift 3-Xcode 8.1
@IBOutlet weak var myWebView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
let url = URL (string: "https://ir.linkedin.com/in/razipour1993")
let requestObj = URLRequest(url: url!)
myWebView.loadRequest(requestObj)
}
在Swift 3中,您可以这样做:
@IBOutlet weak var webview: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
// Web view load
let url = URL (string: "http://www.example.com/")
let request = URLRequest(url: url!)
webview.loadRequest(request)
}
请记住在Info.plist
添加权限,添加以下值:
Swift 3
@IBOutlet weak var webview: UIWebView!
webview.loadRequest(URLRequest(url: URL(string: "https://www.yourvideo.com")!))
Swift 4更新以编程方式创建网络视图
import UIKit
import WebKit
class ViewController: UIViewController, WKUIDelegate {
var webView: WKWebView!
override func loadView() {
let webConfiguration = WKWebViewConfiguration()
webView = WKWebView(frame: .zero, configuration: webConfiguration)
webView.uiDelegate = self
view = webView
}
override func viewDidLoad() {
super.viewDidLoad()
let myURL = URL(string: "https://www.apple.com")
let myRequest = URLRequest(url: myURL!)
webView.loadRequest(myRequest)
}}
简单、经过测试且100%工作 导入webkit:
import WebKit
将IBOutlet分配给webview:
var webView : WKWebView!
设置委托:
class ViewController: UIViewController , WKNavigationDelegate{
在viewDidLoad()上编写代码:
编写委托方法:
//MARK:- WKNavigationDelegate
func webView(webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: NSError) {
print(error.localizedDescription)
}
func webView(webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
print("Strat to load")
}
func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
print("finish to load")
}
看起来像:
使用Swift语言的Webview
let url = URL(string: "http://example.com")
webview.loadRequest(URLRequest(url: url!))
对于swift 4.2和5+
@IBOutlet weak var webView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
//Func Gose Here
let url = URL(string: link)
let requestObj = URLRequest(url: url! as URL)
webView.loadRequest(requestObj)
}
在Swift 4或4.2中,您可以使用如下命令:
import UIKit
import WebKit
class ViewController: UIViewController {
@IBOutlet weak var wkwebview: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
let request = URLRequest(url: URL(string: "**your URL**")!)
wkwebview?.load(request)
}
}
<key>NSAppTransportSecurity</key>
<dict>
<key>Allow Arbitrary Loads</key>
<true/>
</dict>
NSAppTransportSecurity
允许任意载荷
Note info.plist看起来像贝娄您可以加载如下页面:
let url: URL = URL(string:"https://google.com")!
webView.loadRequest(URLRequest.init(url: url))
或单线法:
webView.loadRequest(URLRequest.init(url: URL(string: "https://google.com")!))
webView是您的出口变量
在swift 5中
谢谢我连接了@IBOutlet并让它工作。这太棒了!:)@0x7fffffff不是一个bug。Swift中的实例方法是以实例对象作为其幕后第一个参数的通用类方法。因此,本质上,您可以说
UIWebView.loadRequest(webviewInstance)(…)
swift3版本:webviewInstance.loadRequest(NSURLRequest(url:NSURL(string:“google.ca”)!as url)as URLRequest)
swift4.2版本:'webviewInstance.load(URLRequest(url:url(string:“google.ca”))'它生成了应用程序,但随后在控制台中也抛出了一个错误:libc++abi.dylib:以NSException类型的未捕获异常终止可能是因为您的IBOutlet不存在删除该插座连接并正确连接。我再次重新连接了它。@IBOutlet弱var myWebView:UIWebView代码>但错误仍在显示。我遇到了与@andufo相同的问题。我解决这个问题的唯一方法就是从头开始。这可能是因为你的webView是一个可选值。尝试将?
添加到myWebView?.loadRequest(requestObj)代码>请注意,“shouldStartLoadWithRequest”方法(仅限谷歌)似乎更适合于2016年。希望它能帮助某人如何停止加载符号的运行?它在页面加载后继续运行。@ Marin需要使用启动/停止动画活动。请考虑编辑您的帖子来添加解释,这将有助于OP和其他人理解您的答案。它节省了我的时间,只是提到我需要在target->General选项卡中添加frameworkwebkit
<key>NSAppTransportSecurity</key>
<dict>
<key>Allow Arbitrary Loads</key>
<true/>
</dict>
let url: URL = URL(string:"https://google.com")!
webView.loadRequest(URLRequest.init(url: url))
webView.loadRequest(URLRequest.init(url: URL(string: "https://google.com")!))
import UIKit
import WebKit
class ViewController: UIViewController, WKUIDelegate {
var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
let myURL = URL(string:"https://www.apple.com")
let myRequest = URLRequest(url: myURL!)
webView.load(myRequest)
}
override func loadView() {
let webConfiguration = WKWebViewConfiguration()
webView = WKWebView(frame: .zero, configuration: webConfiguration)
webView.uiDelegate = self
view = webView
}
}