小编MrA*_*sco的帖子

使用 Firebase 处理后台推送通知,支持 Doze

我有一个 Android 应用程序配置为通过 Firebase 接收推送通知,但在手机处于打盹模式时无法正常工作。

应用程序正确接收推送通知,无论它是在前台还是在后台。为此,我仅使用data推送通知中的字段来处理传入的任何内容,而不管应用程序的状态如何。

我已经实现了我的服务来接收通知,如下所示:

class MyFirebaseMessagingService : FirebaseMessagingService() {

   override fun onMessageReceived(p0: RemoteMessage?) {
        Timber.d("Push notification received")
        super.onMessageReceived(p0)
        when (p0!!.data["ch"]) {
            NotificationType.VoIP.channelType() -> handleVoIPNotification(p0.data)
            NotificationType.Push.channelType() -> handlePushNotification(p0.data)
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

ch属性定义了通知的类型并从我的后端发送:由于我的应用程序具有视频通话功能,当有人呼叫后端时,会发送通知ch = voip并将消息优先级设置为high,如Firebase 指南中所述

handleVoIPNotification函数包含以下内容:

private fun handleVoIPNotification(data: Map<String, String>) {
        val gson = Gson()
        val jsonElement = gson.toJsonTree(data)

        try {
            val voIPNotification = gson.fromJson(jsonElement, VoIPNotification::class.java)

            Timber.i("VoIP Notification received: %s", voIPNotification.action.name)

            // pass the incoming …
Run Code Online (Sandbox Code Playgroud)

android push-notification firebase firebase-cloud-messaging

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

Kotlin Native (iOS),使用 CValuesRef 和 CCCrypt

我正在针对 iOS 的 Kotlin 多平台项目中研究 AES256 加密算法。

我检查了一些在纯 Kotlin 中实现这一点的现有库(例如krypto),但它们都不符合我对其余代码的要求(它们已经在 J​​VM 和 JS 中实现,因此无法更改) .

来自 iOS 背景,我决定使用CommonCrypto. 我从这里改编并移植了代码,但我坚持如何ULong通过引用传递CCCrypt函数并稍后检索其值。

我非常仔细地阅读了关于C InteropObjective-C Interop的 Kotlin 文档,但我找不到任何可以解释如何处理我的案例的示例。

特别是,我的问题是numBytesEncrypted变量(见下面的代码)。我需要通过引用CCCrypt函数来传递它,然后读取它的值以NSData使用正确的长度实例化结果。在 Objective-C/Swift 中,我会&在调用函数时为变量加上前缀。

但是,Kotlin 不支持&运算符。如果我从文档中理解正确,那么 Native 中的替换是CValueRef( docs ),所以我使用cValue速记来获取正确类型的引用(应该是size_t,又名。ULong)。

我试图以CValueRef两种方式实例化,就类型检查而言,这两种方式似乎都有效:

val numBytesEncrypted = cValue<ULongVar>()
// or
val numBytesEncrypted = cValue<ULongVarOf<size_t>>()
Run Code Online (Sandbox Code Playgroud)

然后我使用这段代码来获取函数执行后的值: …

ios commoncrypto kotlin kotlin-native

6
推荐指数
1
解决办法
90
查看次数

允许评论工作项但不允许编辑

我的公司正在从之前的 JIRA 环境迁移到 DevOps 和 Azure Boards,我们遇到了一个非常大的权限问题。

\n\n

目前,我们已经配置了各个领域来支持我们的开发团队;我们还有一个专门针对产品团队的区域,首先输入业务需求,然后进行审查。每个团队都有权编辑自己区域中的工作项,并且不能编辑其他区域中的工作项。

\n\n

所以,基本上这就是我们的结构:

\n\n
    \n
  • 工程:项目的主要领域;只有管​​理员可以编辑工作项
  • \n
  • Engineering\\Mobile:Mobile 团队的子区域;只有移动团队的成员和管理员可以编辑工作项
  • \n
  • Engineering\\Backend:后端团队的子区域;只有后端团队的成员和管理员可以编辑工作项
  • \n
  • Engineering\\Device:设备团队的子区域;只有设备团队的成员和管理员可以编辑工作项目
  • \n
  • 工程\\产品:子区域,用于审查业务需求,然后将其移动到适当的区域;每个人都可以编辑工作项
  • \n
\n\n

现在,我们正在尝试授予任何团队中的任何人对工作项目发表评论(即使用“讨论”部分)的权限,无论其所在区域如何,但看起来评论的能力与工作项目严格相关。编辑工作项的权限\xe2\x80\xa6 换句话说,如果不授予编辑工作项的权限,我们就无法启用“讨论”部分,这并不理想。

\n\n

有没有办法在限制编辑的同时为任何人启用讨论部分?

\n

azure-devops

5
推荐指数
2
解决办法
3115
查看次数