我的webview.URL?.absoluteURL.absoluteString
返回零。這是WKWebview
,而不是UIWebVIew
,所以webview.request?.URL?.absoluteString
不適用於此。我也試過webview.URL?.absoluteString
。webview.URL?.absoluteString返回零
該URL在另一個UIViewController類中設置。 webview本身正確加載,所以我知道.URL不是零。 (使用CMD/CTRL + F '//問題' 查找線):
override init(frame: CGRect) {
super.init(frame: frame)
gestureRecognizers = [UIPanGestureRecognizer(target:self, action:"moveWindow:")]
//Change aspects of our view (width, height, color, etc)
header.frame.size.width=frame.size.width
header.frame.size.height=45
header.layer.cornerRadius = 4
//addSubview(header)
windowMask.frame=frame
stackButton.frame=frame
windowMask.layer.cornerRadius = 6
windowMask.clipsToBounds=true
layer.shadowColor = UIColor.blackColor().CGColor
layer.shadowOpacity = 1
layer.shadowRadius = 5
layer.shadowOffset = CGSizeMake(0, 1);
layer.cornerRadius = 6
backgroundColor = UIColor(patternImage: UIImage(named: "Window Texture.png")!)
//opaque=false
//backgroundColor = UIColor.clearColor()
addSubview(windowMask)
dragArea.frame.size.width=frame.size.width-120
dragArea.frame.origin.x=40
dragArea.frame.origin.x=40
//addSubview(dragArea)
//Our webview for... well, isn't it obvious?
webview.frame = CGRectMake(0, 40, frame.width, frame.height-40)
webview.allowsBackForwardNavigationGestures=true
windowMask.frame=CGRectMake(0, 0, frame.width, frame.height)
windowMask.addSubview(webview)
//The back button
bbutton.setImage(UIImage(named: "Back"), forState: .Normal)
bbutton.frame = CGRectMake(5, 5, 30, 30)
windowMask.addSubview(bbutton)
bbutton.addTarget(self, action: "bbuttonPressed:", forControlEvents: .TouchUpInside)
//The large button to select a window in the Stack menu
stackButton.addTarget(self, action: "stackSelected:", forControlEvents: .TouchUpInside)
//The resize button for making the window fullscreen
rbutton.setImage(UIImage(named: "Max"), forState: .Normal)
rbutton.frame = CGRectMake(frame.width-60, 7, 25, 25)
windowMask.addSubview(rbutton)
rbutton.addTarget(self, action: "rbuttonPressed:", forControlEvents: .TouchUpInside)
//The X button for closing a window
xbutton.frame = CGRectMake(frame.width-35, 5, 30, 30)
xbutton.setImage(UIImage(named: "Close"), forState: .Normal)
windowMask.addSubview(xbutton)
xbutton.addTarget(self, action: "xbuttonPressed:", forControlEvents: .TouchUpInside)
//The button for adjusting window size
abutton.frame = CGRectMake(frame.width-20, frame.height-20, 20, 20)
abutton.setImage(UIImage(named: "Resize"), forState: .Normal)
windowMask.addSubview(abutton)
abutton.addTarget(self, action: "abuttonDragged:", forControlEvents: .TouchDown)
//The task button
taskButton.frame.size=CGSizeMake(60,60)
taskButton.backgroundColor=UIColor.whiteColor()
taskButton.frame.origin=CGPointMake(CGFloat(system.windows.count)*60,60)
taskButton.addTarget(self, action: "taskSelected:", forControlEvents: .TouchDown)
//Problem here:
let imgURL = NSURL(string: "http://google.com/s2/favicons?domain="+(self.webview.URL?.absoluteString)!)
print(self.webview.URL?.absoluteURL.absoluteString)
let imageRequest: NSURLRequest = NSURLRequest(URL: imgURL!)
NSURLConnection.sendAsynchronousRequest(
imageRequest, queue: NSOperationQueue.mainQueue(),
completionHandler: {(response: NSURLResponse?,data: NSData?,error: NSError?) -> Void in
if error == nil {
self.taskButton.setImage(UIImage(data: data!),forState: .Normal)
}
})
UIView.animateWithDuration(0.2, animations: {
self.frame.origin.y=50
self.taskButton.frame.origin.y=0
})
}
在另一個UIViewController類,其設定的URL FUNC。網站視圖中的網站本身會正確加載。
func addWindowButtonPressed(sender: UIButton!) {
let url = NSURL(string: "https://google.com")
let request = NSURLRequest(URL: url!)
let newView = Window(frame: CGRectMake(self.view.frame.size.width/2-200,self.view.frame.size.height, 400, 300))
if !system.stacked {
view.addSubview(newView)
newView.webview.loadRequest(request)
system.windows.append(newView)
taskView.addSubview(newView.taskButton)
newView.windowID=system.windows.count
taskView.contentSize.width=CGFloat(system.windows.count)*60
}
taskView.contentSize.width=CGFloat(system.windows.count)*60
}
如果您已經在實施WKNavigationDelegate,您可以在DecisionPolicyForNavigationAction方法中檢查navigationAction.request.URL。 –
這個'init'是什麼類? – szym