gpt4 book ai didi

objective-c - 从启动服务中删除 URL 方案处理程序

转载 作者:搜寻专家 更新时间:2023-10-30 20:25:57 28 4
gpt4 key购买 nike

我正在开发一个 Cocoa Mac 应用程序,它可以动态生成和注册自己的 URL 方案。但是,当应用程序自行注册以处理新生成的 URL 方案(例如 myscheme1423://)时,我想阻止应用程序响应任何先前注册的 URL 方案。

我正在使用 LSSetDefaultHandlerForURLScheme() 来注册一个 URL 方案;同时,应用程序会自动覆盖它的 Info.plist 以包含新方案。您可能知道,LSSetDefaultHandlerForURLScheme() 函数将给定的 bundleID/方案添加到 Launch Services 数据库。但是,我找不到等效的 Launch Services 函数来从数据库中删除相同的 bundleID/方案对。

我知道我可以简单地忽略任何源自 URL 方案的外部事件,而不是应用程序主动注册的那个,但我觉得应该有一种简单的方法来完全清除系统的知识以前的计划。如果我的应用程序经过数百次注册新方案的过程,就会出现大量无意义的碎片在磁盘上占用大量空间(至少对于 Plist)的情况数据(即旧的 Launch Services 条目)。

最佳答案

我刚刚启动了一个 Playground 并开始玩耍。这完全没有记录,但似乎有效。

尝试为

的第二个参数传递 ("None"as CFString)
LSSetDefaultHandlerForURLScheme() 

关于objective-c - 从启动服务中删除 URL 方案处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11705712/

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