问题标签 [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.

0 投票
0 回答
183 浏览

ios - [PFUser currentUser] 的状态未在主应用程序和 iOS Today 扩展中持续存在

我已经按照此处的官方文档在我的 Parse 应用程序和 iOS Today Extension 之间启用了本地数据共享,使用正确的密钥链和应用程序组AppDelegate在我的应用程序和我的扩展程序的方法中进行必要的初始化调用。viewDidLoad

didFinishLaunchingWithOptions方法中AppDelegate

viewDidLoad我的扩展方法中:

我可以在我的扩展程序中进行查询,但我注意到如果我以记录状态开始,转到我的应用程序并发出注销,[PFUser currentUser]在扩展程序中保持非零(我仍然可以访问 currentUser 中的信息)。相反,如果我以注销状态开始,转到应用程序,登录并切换到我的扩展程序,[PFUser currentUser]仍然为零。

关于为什么登录状态的更改PFUser未在应用程序及其扩展程序之间同步的任何想法?

如果我禁用isLocalDatastoreEnabled了检查,小部件会在随后的每一秒调用中崩溃,但是当它重新加载时,至少它的状态currentUser将是同步的,所以这一切都非常令人费解。

0 投票
1 回答
481 浏览

ios - NSExtension 激活规则不起作用

我正在构建一个 iOS8 操作扩展,并且我正在使用NSExtensionActivationSupportsWebURLWithMaxCount设置为1

问题是,除非我进入扩展程序菜单并打开我的扩展程序(使用开关),否则扩展程序不会显示在 Safari 共享菜单中,然后在我使用我的扩展程序后,它再次变得不可见,我必须去扩展菜单并再次打开它,这会一遍又一遍地发生。

知道为什么会发生这种情况以及如何解决吗?

0 投票
0 回答
595 浏览

nsuserdefaults - iOS - Safari 内容拦截器无法从 NSUserDefaults 读取数据

一段时间以来,我一直在研究内容阻止应用程序。我在主应用程序中有一个开关,应该打开阻塞过滤器。此开关的值保存在应用组启用的 NSUserDefaults 属性中,因此阻塞扩展可以读取它是否启用(如果启用阻塞,则返回完整的 json 列表,否则返回空列表)。

在模拟器上这工作得很好,但是当我开始在设备上运行它(在 5s 和 5c 上测试)时,扩展无法再从 UserDefaults 读取属性(它总是返回 nil)并且应用程序无法读取属性从扩展不再。

我认为这与应用程序组有关,但我似乎找不到任何问题(它在 Capibilities 等中启用)所以我有点迷茫。有没有人遇到过这个问题?如果是这样,你能解决它吗?

我正在使用 Xcode 7 beta、iOS 9 beta2 和 Mac OS X Yosemite。

0 投票
0 回答
970 浏览

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 来限制所有活动的文件大小,除了保存和打印......

0 投票
0 回答
158 浏览

ios - 文档选择器扩展中的移动模式

我正在尝试使用 Word 移动应用程序创建一个文件并将其保存在我的应用程序中,为此我已经为我的应用程序实现了文档选择器扩展,并启用了“移动”模式。因此,当我使用 Word 应用程序创建一个文件并尝试保存它时,我可以在文档选择器中看到我的应用程序的名称,当点击它时,我的扩展代码会在我能够获取新创建文件的文件 url 的地方执行UIDocumentPickerExtensionViewController 的“originalURL”属性。但是当我尝试从该 URL 获取文件的大小时,它总是返回零。所以我在这里遗漏了什么明显的东西吗?这是使用“originalURL”获取文件路径的正确方法吗?Apple 文档将“originalURL”定义为只读属性,在导出或移动模式下包含原始文件的 URL。否则它包含 nil。'</p>

0 投票
1 回答
338 浏览

ios - iOS App Extensions (Widgets):打开 URL,然后在应用内执行一个方法

在 iOS 应用扩展(例如Today Widget )中,您可以在使用NSExtensionContext选择小部件时打开应用程序。只有在通过小部件打开应用程序后,有没有办法在应用程序中执行方法(移动到不同的 UI 视图)?

0 投票
1 回答
191 浏览

ios - 如果用户向上滚动控制中心,我如何从 iOS 键盘扩展中检测到?

我开发了一个 iOS 键盘扩展,我在键盘上使用滚动手势。有时使用键盘时,我向上滚动控制中心,我的键盘停止正常工作。有什么方法可以检测控制中心是否可见或不可见?

0 投票
1 回答
62 浏览

ios - 键盘扩展不安装主应用程序

我为主应用程序和扩展程序创建了新方案。
当我在设备上运行主应用程序时,它按预期工作。但是当我运行键盘扩展程序时,它会运行但它不在调试中,如果我之前删除了该应用程序,那么它将不会被安装。谁能解释发生了什么?

0 投票
0 回答
166 浏览

ios - 无法在 chrome 中接收共享扩展的价值

我正在尝试建立一个在Safari 浏览器上运行良好的共享扩展,但它不适用于Chrome浏览器。

我还做了一些RND,发现我无法获得 Chrome 的值。

这是我的 info.plist 文件代码

它还允许显示我的 Chrome 和 Safari 浏览器扩展。

这是我的 DemoProcessor.js 文件代码

这是我的 ShareViewcontroller.m 代码

现在的问题是在上面的代码中,这个函数正在工作

0 投票
2 回答
1850 浏览

ios - 在 iOS 中重新加载内容拦截器

我听说 iOS 支持内容拦截器,所有的拦截都是由blockerList.jsonApp Bundle 中的一个名为的文件完成的。虽然我知道这SFContentBlockerManager.reloadContentBlockerWithIdentifier()会重新加载blockerList.json. 但是,我认为这没有任何用处;这blockerList.json是主包的一部分,不能修改。因此,有什么方法blockerList.json可以修改(或者扩展名可以指向另一个文件,被删除和重新创建,不使用 JSON 等)?