Current page from Safari
Opening a web page in an external browser is easy in Cocoa.
NSString *url = @"https://vafer.org/blog";
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:url]];
If you want to get the URL of the current web page this is a little more complicated. In fact you need to talk to the browser. Safari (like many other applications) can be accessed easily with AppleScript.
- (NSString*) safariURL
{
NSDictionary *dict;
NSAppleEventDescriptor *result;
NSAppleScript *script = [[NSAppleScript alloc] initWithSource:
@"\ntell application \"Safari\"\n\tget URL of document 1\nend tell\n"];
result = [script executeAndReturnError:&dict];
[script release];
if ((result != nil) && ([result descriptorType] != kAENullEvent)) {
return [result stringValue];
}
return nil;
}
It’s also pretty easy to add AppleScript support to you own Cocoa application. I thought I came across a screencast covering this topic but can’t find the link anymore. But check out the following resources if you want to get deeper into this: [1] [2] [3] [4]