我想在 Safari 中打开当前 Cocoa 应用程序的 URL,但问题是我不希望用户看到 Safari UI。即 Safari 应该在后台执行,而不显示其中发生的情况。 这可能吗?
如果是,请告诉方法来做到这一点。
最佳答案
您可以使用 WebView
在 Web View 中打开 URL如果 safari 不是强制要求,则不要使 WebView 对用户可见。
或者
您可以使用Scripting Bridge
框架来最小化应用程序Safari或在头文件中使用其他方法Safari.h
打开 URL 后在后台运行它。
您可以通过这个link了解有关脚本桥的更多信息。对于您的任务,请按照以下步骤操作:
使用下面的终端命令生成 safari 的头文件:
sdef /Applications/Safari.app | sdp -fh --basename Safari
现在,检查您的主文件夹或执行终端 cmd 的当前目录以查看文件 Safari.h
拖动该文件并将其添加到您的项目中。
将 ScriptingBridge.Framework 添加到您的项目中。
导入 header :
#import <ScriptingBridge/ScriptingBridge.h>
#import "Safari.h"
现在使用以下代码在打开 URL 后隐藏 safari:
SafariApplication* sfApp = [SBApplication applicationWithBundleIdentifier:@"com.apple.Safari"];
SafariWindow* win = [[sfApp windows]objectAtIndex:0];
[win setVisible:FALSE];
关于macos - 在后台使用 URL 打开 Safari 应用程序,而不显示 Safari UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21721325/