问题标签 [serviceextension]

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 投票
2 回答
608 浏览

ios - 屏幕锁定时不调用ios NotificationService Extension

我的 iOS 应用程序中有一个 NotificationService 扩展程序,用于修改文本和下载附件。

只要屏幕未锁定,它就可以正常工作。屏幕锁定的那一刻,服务扩展不会被调用,并且通知显示在默认状态,没有消息。

我有一部运行 11.2.5 的 iPhone 7s。有没有其他人遇到过这个并有相同的解决方案?

0 投票
1 回答
235 浏览

ios - 从通知服务扩展记录

所以目前我正在这样做:

如果图像下载成功,我ServiceExtensionHandler将返回修改后的通知。到目前为止,一切都很好。

但是一旦图像下载成功,我想记录一个事件。问题是如果我返回,contentHandler那么操作系统将终止扩展,我将没有时间完成我的日志。

在应用程序扩展执行其任务(或启动后台会话以执行它)后不久,系统会终止扩展。

文档:应用程序扩展的生命周期

目前它正在工作,但不能保证额外的网络调用正常工作。

如果日志返回,我只能返回该完成处理程序,但是日志可能会在 60 秒内超时,这本身也是另一个问题。

有没有人想到任何解决方案?

0 投票
0 回答
35 浏览

ios - 主应用程序和扩展程序中的多个托管对象上下文

我的应用程序及其扩展程序通过应用程序组使用共享数据库,并使用不同的 NSManagedObjectContext,因为扩展程序无法使用主应用程序中的 NSManagedObjectContext。

问题是,当我在主应用程序中更改数据并调用 NSManagedObjectContext 保存时,我无法立即获取扩展中的最新数据(我尝试将 stalenessInterval 设置为 0 并在获取数据之前在扩展中调用 refreshAllObjects 但它也不起作用)。我只能在几分钟后获得最新数据,有时是几个小时。

如何立即从主应用程序获取最新数据?

0 投票
1 回答
25 浏览

ios - 我可以通过应用扩展在主 iOS 应用中执行任务吗?

我有一个用于共享的应用扩展(共享扩展),当用户选择我的应用来共享图像时,我的应用会将该图像发送到服务器。

问题是服务器需要经过身份验证的身份 (AWS Cognito) 才能将对象发送到服务器。由于我无法将身份验证从我的主应用程序共享到我的扩展程序,并且我不想让用户每次想要共享时都登录,所以我被卡住了。

我可以看到这是通过消息传递应用程序完成的,用户从共享扩展程序发送消息。我不确定他们是如何做到这一点的。由于不要求用户在扩展程序中再次登录,因此凭据以某种方式与扩展程序共享,或者应用程序暂时启动以执行该上传,同时保持在后台(不确定这是否可能)。

所以我的问题是我应该使用什么方法。扩展程序是否应该以某种方式指示主应用程序上传图像,或者我应该想办法以安全的方式与扩展程序共享访问令牌并在没有任何用户操作的情况下访问它们?