问题标签 [ios-extensions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - [PFUser currentUser] 的状态未在主应用程序和 iOS Today 扩展中持续存在
我已经按照此处的官方文档在我的 Parse 应用程序和 iOS Today Extension 之间启用了本地数据共享,使用正确的密钥链和应用程序组AppDelegate
在我的应用程序和我的扩展程序的方法中进行必要的初始化调用。viewDidLoad
在didFinishLaunchingWithOptions
方法中AppDelegate
:
在viewDidLoad
我的扩展方法中:
我可以在我的扩展程序中进行查询,但我注意到如果我以记录状态开始,转到我的应用程序并发出注销,[PFUser currentUser]
在扩展程序中保持非零(我仍然可以访问 currentUser 中的信息)。相反,如果我以注销状态开始,转到应用程序,登录并切换到我的扩展程序,[PFUser currentUser]
仍然为零。
关于为什么登录状态的更改PFUser
未在应用程序及其扩展程序之间同步的任何想法?
如果我禁用isLocalDatastoreEnabled
了检查,小部件会在随后的每一秒调用中崩溃,但是当它重新加载时,至少它的状态currentUser
将是同步的,所以这一切都非常令人费解。
ios - NSExtension 激活规则不起作用
我正在构建一个 iOS8 操作扩展,并且我正在使用NSExtensionActivationSupportsWebURLWithMaxCount设置为1
问题是,除非我进入扩展程序菜单并打开我的扩展程序(使用开关),否则扩展程序不会显示在 Safari 共享菜单中,然后在我使用我的扩展程序后,它再次变得不可见,我必须去扩展菜单并再次打开它,这会一遍又一遍地发生。
知道为什么会发生这种情况以及如何解决吗?
nsuserdefaults - iOS - Safari 内容拦截器无法从 NSUserDefaults 读取数据
一段时间以来,我一直在研究内容阻止应用程序。我在主应用程序中有一个开关,应该打开阻塞过滤器。此开关的值保存在应用组启用的 NSUserDefaults 属性中,因此阻塞扩展可以读取它是否启用(如果启用阻塞,则返回完整的 json 列表,否则返回空列表)。
在模拟器上这工作得很好,但是当我开始在设备上运行它(在 5s 和 5c 上测试)时,扩展无法再从 UserDefaults 读取属性(它总是返回 nil)并且应用程序无法读取属性从扩展不再。
我认为这与应用程序组有关,但我似乎找不到任何问题(它在 Capibilities 等中启用)所以我有点迷茫。有没有人遇到过这个问题?如果是这样,你能解决它吗?
我正在使用 Xcode 7 beta、iOS 9 beta2 和 Mac OS X Yosemite。
ios - 通过 UIActivityViewController 是否有 twitter 或 Facebook 的最大文件或图像大小?
我使用 UIActivityViewController 将图像和文本共享到 Message、Email、Facebook、Twitter 等。直到最近,我认为我可以发送任何大小的图像(至少高达 5MB)。但是,我注意到我不能再将大于 2.5MB 的图像发送到 Facebook 或 twitter。例如,我选择要分享的图像,打开 activityViewController 并选择 Facebook。activityViewController 慢慢打开 Facebook 界面/视图(但不显示附加图像)然后关闭 Facebook 视图(并隐式地关闭 activityviewcontroller)。该应用程序本身不会崩溃,因为我可以重新选择图像并通过消息或电子邮件发送它。我已经在这个应用程序上工作了几个月,几周前我在测试时认为它没有发生。将较小的图像分享到 Facebook 或 twitter 时我没有任何问题。我'
更新:
我提交了一份技术报告并获得了以下信息:Facebook 和 Twitter 被实现为系统验证的共享扩展。所有扩展都有内存限制。这可能会导致扩展程序终止,但我的应用程序会继续运行,因为它在单独的进程中运行。这可以使用设备控制台崩溃报告(不是 Xcode 调试控制台或 ~/Library/Logs/CrashReporter/ 中的崩溃报告)看到。设备控制台显示警告,例如“ShareExtension[4959] : Received memory warning”。
显然 Facebook 和 Twitter 等对服务施加了限制,建议我与他们联系以获取更多信息。苹果确实缩小了图像以符合限制。这似乎适用于共享单个文件而不是多个大图像(当我通过 Mail 共享多个文件对其进行测试时,第一个图像被调整大小但不是后来的图像)。奇怪的是,我现在可以将单个大文件共享到 Facebook/Twitter,但不能共享多个大文件。一旦您选择 Facebook 作为扩展名(从选择前的 12MB 跳到 >100MB),内存分配会非常大,以获取约 4MB 的照片。
Apple 建议我使用图像的 URL 而不是 UIImage 对象来更有效地处理更大的图像。这并没有解决我的问题,所以我将尝试使用 UIActivityItemProvider 来限制所有活动的文件大小,除了保存和打印......
ios - 文档选择器扩展中的移动模式
我正在尝试使用 Word 移动应用程序创建一个文件并将其保存在我的应用程序中,为此我已经为我的应用程序实现了文档选择器扩展,并启用了“移动”模式。因此,当我使用 Word 应用程序创建一个文件并尝试保存它时,我可以在文档选择器中看到我的应用程序的名称,当点击它时,我的扩展代码会在我能够获取新创建文件的文件 url 的地方执行UIDocumentPickerExtensionViewController 的“originalURL”属性。但是当我尝试从该 URL 获取文件的大小时,它总是返回零。所以我在这里遗漏了什么明显的东西吗?这是使用“originalURL”获取文件路径的正确方法吗?Apple 文档将“originalURL”定义为只读属性,在导出或移动模式下包含原始文件的 URL。否则它包含 nil。'</p>
ios - iOS App Extensions (Widgets):打开 URL,然后在应用内执行一个方法
在 iOS 应用扩展(例如Today Widget )中,您可以在使用NSExtensionContext选择小部件时打开应用程序。只有在通过小部件打开应用程序后,有没有办法在应用程序中执行方法(移动到不同的 UI 视图)?
ios - 如果用户向上滚动控制中心,我如何从 iOS 键盘扩展中检测到?
我开发了一个 iOS 键盘扩展,我在键盘上使用滚动手势。有时使用键盘时,我向上滚动控制中心,我的键盘停止正常工作。有什么方法可以检测控制中心是否可见或不可见?
ios - 键盘扩展不安装主应用程序
我为主应用程序和扩展程序创建了新方案。
当我在设备上运行主应用程序时,它按预期工作。但是当我运行键盘扩展程序时,它会运行但它不在调试中,如果我之前删除了该应用程序,那么它将不会被安装。谁能解释发生了什么?
ios - 无法在 chrome 中接收共享扩展的价值
我正在尝试建立一个在Safari 浏览器上运行良好的共享扩展,但它不适用于Chrome浏览器。
我还做了一些RND,发现我无法获得 Chrome 的值。
这是我的 info.plist 文件代码
它还允许显示我的 Chrome 和 Safari 浏览器扩展。
这是我的 DemoProcessor.js 文件代码
这是我的 ShareViewcontroller.m 代码
现在的问题是在上面的代码中,这个函数正在工作
ios - 在 iOS 中重新加载内容拦截器
我听说 iOS 支持内容拦截器,所有的拦截都是由blockerList.json
App Bundle 中的一个名为的文件完成的。虽然我知道这SFContentBlockerManager.reloadContentBlockerWithIdentifier()
会重新加载blockerList.json
. 但是,我认为这没有任何用处;这blockerList.json
是主包的一部分,不能修改。因此,有什么方法blockerList.json
可以修改(或者扩展名可以指向另一个文件,被删除和重新创建,不使用 JSON 等)?