gpt4 book ai didi

safari - 无论系统浏览器设置为什么,都可以使用 Safari 打开 URL

转载 作者:行者123 更新时间:2023-12-04 00:59:25 25 4
gpt4 key购买 nike

在我的objective-c 程序中,无论系统的默认浏览器是什么,我都需要在Safari 中打开一个URL。这意味着这将不起作用,因为它可以启动 Firefox 或任何其他浏览器:

NSWorkspace * ws = [NSWorkspace sharedWorkspace];
[ws openURL: url];

我想我很接近这个:
[ws launchAppWithBundleIdentifier: @"com.apple.Safari"
options: NSWorkspaceLaunchWithoutActivation
additionalEventParamDescriptor: NULL
launchIdentifier: nil];

只需要弄清楚如何将URL作为参数传递......有没有更简单的方法?

谢谢!

更新:以下代码使用我想要的 URL 启动 Safari,但 Safari 立即终止!任何想法这是为什么?
NSWorkspace * ws = [NSWorkspace sharedWorkspace];
[ws openURLs: urls withAppBundleIdentifier:@"com.apple.Safari"
options: NSWorkspaceLaunchDefault
additionalEventParamDescriptor: NULL
launchIdentifiers: NULL];

我观察到与 LSOpenFromURLSpec 相同的行为.如果 Safari 实例正在运行,则它可以正常工作。如果没有 Safari 实例正在运行,它会启动一个新实例并立即终止它。

更新 2:Safari 只会在嵌入了 Flash 的网站上崩溃。使用上面的代码,我可以很好地打开 google.com,但是 Safari 会因为 YouTube 视频而崩溃,例如。

最佳答案

试试 OpenURLs方法来自 NSWorkspace :

- (BOOL) openURLs:(NSArray *)urls
withAppBundleIdentifier:(NSString *)bundleIdentifier
options:(NSWorkspaceLaunchOptions)options
additionalEventParamDescriptor:(NSAppleEventDescriptor *)descriptor
launchIdentifiers:(NSArray **)identifiers

关于safari - 无论系统浏览器设置为什么,都可以使用 Safari 打开 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2965615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com