目前有没有办法在macOS菜单栏中创建一个在后台运行的React Native应用程序?
nhjlsmyf1#
这个问题不是最近的,但我发现它搜索这个主题,并有一个最近的相关更新:随着微软新的桌面努力,这现在是可行的,尽管仍然很棘手。感谢ospfranco的出色工作。唯一的方法是编辑AppDelegate类,并使用React Native应用程序的Root View内容初始化状态按钮标签及其弹出框内容。也可以自定义其大小,外观和按钮,但只能在Swift代码中。
AppDelegate
func applicationDidFinishLaunching(_ aNotification: Notification) { let jsCodeLocation: URL jsCodeLocation = RCTBundleURLProvider.sharedSettings().jsBundleURL(forBundleRoot: "index", fallbackResource:nil) let rootView = RCTRootView(bundleURL: jsCodeLocation, moduleName: "tempomat", initialProperties: nil, launchOptions: nil) let rootViewController = NSViewController() rootViewController.view = rootView popover = NSPopover() popover.contentSize = NSSize(width: 700, height: 800) popover.animates = true popover.behavior = .transient popover.contentViewController = rootViewController statusBarItem = NSStatusBar.system.statusItem(withLength: CGFloat(60)) if let button = self.statusBarItem.button { button.action = #selector(togglePopover(_:)) button.title = "Tempomat" } }
参考文献:
kcwpcxri2#
到目前为止,最好的方法是使用Electron平台。
2条答案
按热度按时间nhjlsmyf1#
这个问题不是最近的,但我发现它搜索这个主题,并有一个最近的相关更新:随着微软新的桌面努力,这现在是可行的,尽管仍然很棘手。
感谢ospfranco的出色工作。
唯一的方法是编辑
AppDelegate
类,并使用React Native应用程序的Root View内容初始化状态按钮标签及其弹出框内容。也可以自定义其大小,外观和按钮,但只能在Swift代码中。参考文献:
kcwpcxri2#
到目前为止,最好的方法是使用Electron平台。