Question

I have a webView in Xcode, and after a few seconds of browsing I want to be able to get the current URL of the web view. I've searched around but I can't find how. Any help would be appreciated!

Was it helpful?

Solution

If you set the WebView's frameLoadDelegate outlet to your AppleScript class in the nib file, you can implement the AppleScript-Objc equivalent of the WebFrameLoadDelegate's webView:didStartProvisionalLoadForFrame: method to be informed when the WebView starts loading a new page (which comes from WebKit Objective-C Programming Guide - Loading Pages - Displaying the Current URL):

on webView_didStartProvisionalLoadForFrame_(sender, frame)
    log "webView_didStartProvisionalLoadForFrame_"

    if frame is equal to sender's mainFrame then
        set currentURLRequest to frame's provisionalDataSource()'s request
        log currentURLRequest

        set theURL to currentURLRequest's mainDocumentURL()
        log theURL

        set theURLString to theURL's absoluteString()
        log theURLString

        set textField's stringValue to theURLString

    end if

end webView_didStartProvisionalLoadForFrame_

In this sample code, I set a text field's string value to the current URL, like a browser usually does when you navigate to another page. You could always store this value in an AppleScript property if need be.

Sample Project: WebViewFinaglerAS-Objc.zip

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top