在应用程序和扩展程序之间共享捆绑资源

2023-12-20

我的照片共享扩展计划使用相同的设计资源(用于导航和向照片添加“图章/贴纸”)。

如应用程序沙盒设计指南中所述,沙盒应用程序组 需要共享文件和其他信息的可以请求容器 目录作为其权利的一部分。这些目录是存放的 在〜/ Library / Group Containers /中。https://developer.apple.com/documentation/foundation/nsfilemanager/1412643-containerurlforsecurityapplicati https://developer.apple.com/documentation/foundation/nsfilemanager/1412643-containerurlforsecurityapplicati

目前,资源已捆绑或下载并添加到Documents文件夹。如果我想使用照片共享扩展中的资源,将所有内容都放在~/Library/Group Containers/容器应用程序和扩展程序都从那里获取资产?


关于共享数据:

如果您想在 iOS8 扩展和包含应用程序之间共享文件,您需要将文件写入共享容器或使用共享用户默认值。

来自Apple的iOS8当前文档:

默认情况下,您的包含应用程序及其扩展没有直接的 访问彼此的容器

您想要创建一个应用程序组,并将包含您的应用程序及其扩展添加到该组。使用 Xcode 6 这非常简单,以下是在 Xcode 中执行此操作的方法:

在应用程序组名称中,输入一个常量,例如:

group.com.bundle.app.soething

这将为您包含的应用程序和扩展创建一个共享容器,它允许:

  • 分享 NSUserDefaults:

    [[NSUserDefaults alloc] initWithSuiteName:@"group.com.bundle.app.soething"];
    
  • 在文件系统上共享目录:

    NSURL *containerURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.com.bundle.app.soething"];
    

编辑 这将打印出我们拥有的所有路径组合:

// App group's path

NSURL  *containerURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.com.test.app"];

NSLog(@"App group: %@", containerURL.path);



// Bundle path

NSLog (@"Bundle: %@", [[NSBundle mainBundle] bundlePath]);



// Good old Documents path

NSArray *Paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *path = [Paths objectAtIndex:0];

NSLog(@"Documents: %@ ", path);

编辑 - 对于 Swift:

  • 分享 NSUserDefaults:

    var sharedDefaults = NSUserDefaults(suiteName: "group.com.bundle.app.soething")
    
  • 在文件系统上共享目录:

    var containerURL = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier("group.com.bundle.app.soething")!
    

我希望这可以帮助你 :)

资源: 苹果iOS8.0扩展开发指南-https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html#//apple_ref/doc/uid/TP40014214-CH21-SW1 https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html#//apple_ref/doc/uid/TP40014214-CH21-SW1

Apple 的 iOS8.0 NSFileManager 类参考 -https://developer.apple.com/documentation/foundation/nsfilemanager/1412643-containerurlforsecurityapplicati https://developer.apple.com/documentation/foundation/nsfilemanager/1412643-containerurlforsecurityapplicati

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在应用程序和扩展程序之间共享捆绑资源 的相关文章

  • 如何从我的应用程序打开 ios Native dialer 应用程序

    我想打开本机拨号器应用程序并允许用户在那里输入电话号码 我想要这个的原因是因为在我的应用程序中 用户需要使用 USSD 代码才能拨打电话 但使用下面的代码没有任何反应 没有任何启动 NSString phoneNumber tel stri
  • 在 iOS8.3 上显示警报视图时不必要地触发 iOS 键盘通知

    我们正在观察 iOS 8 3 上键盘将显示和隐藏通知的异常行为 视图控制器 监听键盘通知 有一个文本字段 单击并点击提交按钮后 该方法首先从文本字段中退出第一响应者 并显示一条警报以通知警告 一切正常 它会关闭键盘并按预期显示警报 也调用
  • 在 Objective-C 中使用类别重写方法

    我可以使用类类别来覆盖已使用类别实现的方法吗 像这样 1 原始方法 BOOL method return true 2 重写方法 BOOL method NSLog error return true 这可行吗 还是非法的 From 苹果文
  • NSRunningApplication - 终止

    我将如何使用NSRunningApplication 我有与启动应用程序相反的东西 NSWorkspace sharedWorkspace launchApplication appName 但我想关闭一个 当我调试代码时出现错误NSRun
  • 使用 Objective C 将 html 字符串插入 sqlite 数据库

    我正在使用下面的代码片段将 html 字符串插入 sqlite 数据库 我的代码工作正常 但是当我检索相同的 html 字符串并在 Web 视图中显示时 它不会呈现 一些数据正在被修改 任何人都可以帮助如何插入长 html 字符串存入数据库
  • 为什么 NSOrderedSet 不继承 NSSet?

    当然 有序集是集合的更具体的情况 那么为什么NSOrderedSet继承自NSObject而不是NSSet 我通过了界面NSSet你是对的 有序集似乎满足里氏替换原则 http en wikipedia org wiki Liskov su
  • 如何在 UIButton 中创建边框?

    我在名为 addButton 的应用程序中使用自定义按钮 我想用白色边框它 如何在自定义按钮周围获得白色边框 您可以通过访问按钮的图层属性来设置 CALayer 上的边框属性 首先 添加石英 import
  • 如何在 Mac 操作系统中播放声音?

    我想在专为 Mac OS X Lion 10 7 而不是 iPhone 设计的 Objective C 应用程序中播放 mp3 文件 谢谢 看看NSSound http developer apple com library mac doc
  • 获取选定行 NSTableView 的值

    我如何获取 NSTableView 中选定行的值 通过使用selectedRow see here https developer apple com documentation appkit nstableview 1535010 sel
  • Objective-c 截断字符串并在末尾添加省略号

    如何在 Objective C 中截断字符串 然后在末尾添加省略号 NSString origString A very long string blah blah blah const int clipLength 18 if origS
  • IOS - ObjC Google 地图 Api 密钥

    我只是按照上面提到的做对了一切here https developers google com maps documentation ios start adding the google maps sdk for ios to your
  • 删除单元格时表格视图单元格背景变为白色 - iOS

    我有一个 iOS 应用程序UITableView 我注意到当用户选择时单元格背景颜色会闪烁白色Delete button In the editActionsForRowAtIndexPath方法 我创建了两个单元格按钮 Edit and
  • -[NSCFString objectAtIndex:]:无法识别的选择器

    我有一个小问题 在谷歌中找不到 UITableView工作正常 直到我开始滚动 Error Message NSCFString objectAtIndex unrecognized selector sent to instance 0x
  • 在 Facebook 墙上添加照片

    void postToWall FBStreamDialog dialog FBStreamDialog alloc init autorelease dialog userMessagePrompt NSString stringWith
  • 如何在 XCode 中将 C++ 与 Objective-C 结合使用

    我想在 Objective C 中使用 重用 C 对象 我有一个包含类定义的 hello h 和用于类实现的 hello cpp class Hello int getX 我在 Objective C 函数中使用这个类 include he
  • iPhone 6模拟器,隐藏键盘问题

    iPhone 6 是否有一些新的方式 屏幕外 硬按钮 来重新打开隐藏的软键盘 我没有可以测试的物理设备 但我在 iPhone 6 模拟器中看到了一些在 iPad 或 iPhone 5 中看不到的新东西 iPhone 6 在横向视图中现在有一
  • TextField 中的 NSAttributedString 在单击时更改/重置

    我正在跟进THIS https developer apple com library mac qa qa1487 index html来自苹果的指南 但它并没有真正正常工作 基本上 我试图通过自定义 WindowController 类向
  • 在屏幕外绘制 uiview

    我想创建一个 UIView 它在调用 ViewDidLoad 时位于屏幕外 但一旦调用某个函数 我就会将其动画显示到屏幕上 用于对 UIView 进行动画处理的代码很好 但我似乎无法从屏幕外绘制 UIView 我已将故事板中的 UIView
  • 运行使用 XCode 7 部署的应用程序会崩溃

    我在 xcode 6 中开发应用程序 然后设备连接 我通过调试运行应用程序 在我可以断开设备与 Xcode 的连接并再次运行应用程序后 它正在运行 但今天开始出现一些问题 我使用 xcode 7 中的运行按钮运行应用程序 gt 应用程序正常
  • 有 Objective-C Web 框架吗?

    有 Objective C Web 框架吗 我发现的唯一框架是 frothkit 我主要寻找一种在 Objective C 中编写 RESTful json Web 服务的方法 GNUStepWeb http wiki gnustep or

随机推荐

  • Python Kivy:如何在单击按钮时调用函数?

    我对使用 kivy 库还很陌生 我有一个 app py 文件和一个 app kv 文件 我的问题是我无法在按下按钮时调用函数 app py import kivy from kivy app import App from kivy uix
  • 如何在 wpf 中使用 WindowChrome 而不使用 Windows Aero 玻璃效果,黑色边框

    我正在尝试使用 WindowChrome 类自定义窗口边框 没有 Windows Aero 玻璃效果 正如预期的那样 我最终得到了一个黑人寄宿生 但我最终也没有标题按钮 从微软我了解到我可以通过将窗口样式设置为 null 来使用标准窗口来克
  • DQL 查询返回:预期 StateFieldPathExpression 或 SingleValuedAssociationField

    我有以下 DQL 查询 public function findByIdJoinedToCodeExample pageId query this gt getEntityManager gt createQuery SELECT c FR
  • 将 super 与 class_eval 一起使用

    我有一个应用程序 其中包含用于添加客户端自定义的核心类模块 我发现 class eval 是重写核心类中方法的好方法 但有时我想避免重写整个方法 而只是遵循原始方法 例如 如果我有一个名为account balance 最好在我的模块 即包
  • 在 ASP.NET 中将 HTML 内容写入 Word 文档时出现问题

    我正在尝试将 HTML 页面内容导出到 Word 我的Html显示页面是 你最喜欢的颜色是什么 NA 列出前三名的学校 一名国家级 两个开发人员 三个PS 以及一个用于点击事件的按钮 按钮单击事件将打开 MS Word 并将页面内容粘贴到
  • 简单的 UIView drawRect 没有被调用

    我不明白这里出了什么问题 我有一个非常简单的 UIViewController 和一个非常简单的 viewDidLoad 方法 void viewDidLoad NSLog making game view GameView v GameV
  • Python-获取目录中所有文件和子文件夹的相对路径

    我正在寻找一种获取特定文件夹内文件和 子 文件夹的相对路径的好方法 对于我目前使用的方法os walk 它正在工作 但对我来说似乎并不 Pythonic myFolder myfolder fileSet set yes I need a
  • 手动设置Session过期时间-CodeIgniter

    如何在 codeigniter 中动态设置会话过期时间 例如 如果用户登录并具有以下角色 admin 过期时间应该比没有权限的用户登录时要长admin role Thanks 您可以通过在配置文件中增加此变量来更新会话过期时间 config
  • 我应该对不透明对象使用整数 ID 还是指针?

    我正在一些图形 API DirectX9 和 DirectX11 之上编写一个抽象层 我想听听您的意见 传统上 我会为每个我想要抽象的概念创建一个基类 因此 在典型的 OO 方式中 我将拥有一个 Shader 类和 2 个子类 DX9Sha
  • Django 动态模型字段

    我正在研究一个多租户应用程序中 一些用户可以定义自己的数据字段 通过管理员 以收集表单中的附加数据并报告数据 后一点使得 JSONField 不是一个很好的选择 所以我有以下解决方案 class CustomDataField models
  • 如何使 AWS EC2 上的 Tomcat 从外部本地主机可用

    我正在尝试在 AWS Linux 服务器上运行 Tomcat 我已经安装了 Tomcat 并从命令行测试了它以确保它正常工作 但我无法从另一台计算机访问它 细节 该实例在安全组中开放了用于 HTTP 的 80 传入端口 我已经通过远程登录到
  • 重写解析表达式语法(PEG),无需左递归

    Using https github com JetBrains Grammar Kit https github com JetBrains Grammar Kit如何在没有左递归的情况下重写语法 grammar exprs exprs
  • Bison 语义谓词语法错误,杂散“#”

    我正在尝试使用 Bison 的语义谓词 https www gnu org software bison manual html node Semantic Predicates html Semantic Predicates功能 但我在
  • Google 云消息服务器的 IP 地址

    我即将在服务器上部署 GCM 的实现 并且需要通过 IP 打开适当的防火墙 有谁知道在哪里可以找到 android googleapis com 的 IP 地址范围 Thanks 我发现 android googleapis com 的 I
  • 无法在 Windows 10 上使用 Docker Toolbox 共享/挂载卷

    我正在尝试使用 docker 设置我的项目 我在 Windows 10 家庭版上使用 Docker Toolbox 我对码头工人很陌生 据我了解 我必须将文件复制到新容器并添加一个卷 以便我可以保留 gulp 所做的更改 这是我的文件夹结构
  • Mongodb count 与 findone

    我的问题是 有一组用户 我试图找到 用户是否使用 id xxx has somevalue gt 5 我想知道 使用什么会更快find count gt 0 or findOne null 或者也许还有其他更快 更好的方法 查询时间之间的差
  • 使用 guice 构建带有注入类的框架,初始化的正确方法是什么?

    我正在尝试编写一个框架 其中任意 bean 类都通过我的 API 中的类注入 并且它们可以与这两个类交互 也可以根据定义的注释触发回调 这是一个示例 bean Experiment static class TestExperiment p
  • Android NDK:您确定您的 NDK_MODULE_PATH 变量已正确定义吗?

    最近 3天前 开始学习Android Studio 我购买了一个 Eclipse 游戏项目来玩 但出现错误 当我修复该错误时 我收到一个新错误 目前的错误如下 构建命令失败 执行过程时出错 C Users user AppData Loca
  • 不考虑回到起点的旅行商问题(TSP)的问题名称是什么?

    我想知道 TSP 的问题名称是什么 不考虑返回起点的方式 以及解决这个问题的算法是什么 我研究了最短路径问题 但这不是我想要的 问题只是从 2 个指定点找到最短路径 但我要寻找的是我们给出n个点并且只输入1个起点的问题 然后 找到经过所有点
  • 在应用程序和扩展程序之间共享捆绑资源

    我的照片共享扩展计划使用相同的设计资源 用于导航和向照片添加 图章 贴纸 如应用程序沙盒设计指南中所述 沙盒应用程序组 需要共享文件和其他信息的可以请求容器 目录作为其权利的一部分 这些目录是存放的 在 Library Group Cont