Xcode Onesignal flutter 集成

问题描述 投票:0回答:1

我正在创建一个带有推送通知的应用程序。我已遵循此文档https://documentation.onesignal.com/docs/flutter-sdk-setup。 Android 运行完美,IOS 则不行。

我尝试在 xcode 中构建,但它立即失败。这是所需的NotificationsService.swift...

import UserNotifications

import OneSignalExtension

class NotificationService: UNNotificationServiceExtension {
    
    var contentHandler: ((UNNotificationContent) -> Void)?
    var receivedRequest: UNNotificationRequest!
    var bestAttemptContent: UNMutableNotificationContent?
    
    override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
        self.receivedRequest = request
        self.contentHandler = contentHandler
        self.bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)
        
        if let bestAttemptContent = bestAttemptContent {
            /* DEBUGGING: Uncomment the 2 lines below to check this extension is executing
                          Note, this extension only runs when mutable-content is set
                          Setting an attachment or action buttons automatically adds this */
            // print("Running NotificationServiceExtension")
            // bestAttemptContent.body = "[Modified] " + bestAttemptContent.body
            
            OneSignalExtension.didReceiveNotificationExtensionRequest(self.receivedRequest, with: bestAttemptContent, withContentHandler: self.contentHandler)
        }
    }
    
    override func serviceExtensionTimeWillExpire() {
        // Called just before the extension will be terminated by the system.
        // Use this as an opportunity to deliver your "best attempt" at modified content, otherwise the original push payload will be used.
        if let contentHandler = contentHandler, let bestAttemptContent =  bestAttemptContent {
            OneSignalExtension.serviceExtensionTimeWillExpireRequest(self.receivedRequest, with: self.bestAttemptContent)
            contentHandler(bestAttemptContent)
        }
    }  
}

我在

import OneSignalExtension
处收到错误。它说没有这样的模块。我不确定在哪里下载该模块。请帮忙!

ios swift flutter xcode onesignal
1个回答
0
投票

在 post_install 之前将其放入 podfile 中:

target 'OneSignalNotificationServiceExtension' do
  use_frameworks!
  pod 'OneSignalXCFramework', '>= 5.0.0', '< 6.0'
end

如果你已经有了目标

OneSignalNotificationServiceExtension
,那么只需将其放入“use_frameworks!”中,然后执行 吊舱解体 吊舱安装

© www.soinside.com 2019 - 2024. All rights reserved.