![](/img/trans.png)
[英]Swift: Cocoa, local notification not showing in mac OS Catalina
[英]Distributed notification no longer working in Catalina
我使用分布式通知中心在 safari 擴展應用程序和 MacOS 應用程序之間傳輸數據。 我使用DistributedNotificationCenter.default().addObserver
和特定的通知名稱,並使用相同的名稱從 MacOS 應用程序發布通知DistributedNotificationCenter.default().postNotificationName
我不斷attempt to post distributed notification 'nameofnotification' thwarted by sandboxing.
我在蘋果文檔中看到
沙盒應用程序只有在不包含字典時才能發送通知。 如果發送應用程序在應用沙盒中,則 userInfo 必須為零。
我的用戶信息不是零,但這在以前版本的 Mac 上運行良好。 我錯過了什么? 這是相對較新的嗎?
在擴展程序和應用程序之間進行通信的替代方法是什么? XPC 服務會起作用嗎?
更新
我已經按照蘋果的文檔實現了一個 XPC 服務,但是當我從 safari 擴展中調用它時,我收到此錯誤Couldn't communicate with a helper application.
我可以從嵌入 XPC 服務的應用程序中毫無問題地調用它。
我試圖:
Contents/XPCServices
let connectionXPC = SXPCConnection.init(serviceName:"XXXXXXX.com.bundlename.XPCService")
而不是let connectionXPC = NSXPCConnection.init(serviceName: "com.bundlename.XPCService")
其中 XXXXXXX 是應用程序組。關於如何從擴展應用程序正確使用 XPC 服務的任何想法,或任何其他方式在沙盒擴展程序和應用程序之間進行通信和發送數據。
在這種情況下 XPC 將不起作用。 與新型 Safari 擴展的通信應通過SFSafariExtensionHandler
子類執行。
建議通過 Xcode 對應的模板創建 Safari Extension,所有重要的設置、Info.plist 字段和基礎結構都會為您設置。
請參閱官方構建 Safari 應用程序擴展中的良好文檔詳細信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.