小编Jan*_*pas的帖子

iOS日历监控在后台 - 它是如何完成的?

我正在研究如何在活动即将开始时向我们的应用添加通知.其他只是日历应用程序提供此功能,但我的研究让我感到困惑,他们如何实现这一目标.

根据Apple文档: 对于需要更多执行时间来实现的任务,您必须请求特定权限才能在后台运行它们而不会被暂停.在iOS中,只允许在后台运行特定的应用类型:

  • 在后台播放用户可听内容的应用,例如音乐播放器应用
  • 随时向用户通知其位置的应用,例如导航应用
  • 支持互联网协议语音(VoIP)的应用
  • 需要下载和处理新内容的报亭应用程序
  • 从外部配件接收定期更新的应用程序

好吧,日历应用程序不是这些.如果我安排我的应用程序的本地通知定期唤醒并检查日历,这是不够的,因为我已经完成阅读.使用位置监控选项是不够的 - 如果我的用户整天坐在他/她的办公室怎么办?

显然,可以在手机旁边的其他来源添加/删除日历事件,因此在我的应用启动时设置一堆通知不是解决方案.

日历应用程序如何完成事件前通知?我有几个来自App Store的日历应用程序,他们这样做,所以我知道它可以完成.我的应用程序也需要被App Store接受,所以我不能伪造VoIP作为解决方案.

其他信息:经过更多研究后,我看到这样做的应用程序在关闭(duh)时不会更新,但它们会进行一些后台更新.我仍然不清楚如何保持我的后台进程很长时间(例如一夜之间).

notifications calendar background-process ios

7
推荐指数
1
解决办法
1207
查看次数

通过 Swift 包管理器安装 FirebaseUI-ios

我正在尝试使用 Swift 包管理器安装 FirebaseUI-iOS。我尝试过 Xcode 14.0 和 Xcode 13.4.1。我收到以下错误:Xcode `13.4.1 出现错误

[![Xcode 14.0 的错误][2]][2] [2]:https://i.stack.imgur.com/FklqL.png

我尝试过使用“直到主要版本”(特定版本),但没有任何效果。有人有建议吗?如果我查看存储库,Package.swift 文件确实存在。我也就此提出了一个问题。https://github.com/firebase/FirebaseUI-iOS/issues/1094

TIA

xcode firebaseui swift-package-manager

7
推荐指数
1
解决办法
763
查看次数

APPWIDGET_UPDATE 接收器的目的是什么

我正在开发一个由不再在公司工作的人编写的 Android 应用程序,并且不明白为 AppWidget 更新创建接收器的目的是什么。清单具有在应用程序启动时运行的主要活动。据我所知,appwidget 从未被使用过,它的代码与应用程序的其余部分是分开的。我不知道这是剩余的并且可以删除还是仍在使用。我发现的所有教程和示例都解释了如何实现这一点,但并不是真正解释为什么要这样做,尤其是在这种情况下。

清单文件中的代码:

<application
    android:debuggable="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@style/ConnectTheme" >
    <activity
        android:name="com.globalcrossing.connect.ConferenceListView"
        android:label="@string/listTitle" >
        <intent-filter android:label="@string/app_name" >
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.globalcrossing.connect.Preferences"
        android:label="@string/set_preferences" >
    </activity>
    <!-- Broadcast Receiver that will process AppWidget updates -->
    <receiver
        android:name="com.globalcrossing.connect.ConferenceWidget"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
        </intent-filter>

        <meta-data
            android:name="android.appwidget.provider"
            android:resource="@xml/widget_provider" />
    </receiver>
... more activities I understand, deleted for brevity
 </application>
Run Code Online (Sandbox Code Playgroud)

android broadcastreceiver android-manifest android-appwidget

4
推荐指数
1
解决办法
5974
查看次数