swift Xcode OnesignalFlutter集成

jvidinwx  于 12个月前  发布在  Swift
关注(0)|答案(1)|浏览(87)

我正在创建一个应用程序与推送通知.我已经按照这个文档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得到一个错误。它说没有这样的模块。我不知道我在哪里下载的模块。请帮助!

20jt8wwn

20jt8wwn1#

在post_install之前把这个放在你的podfile中:

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

字符串
如果你已经有了目标OneSignalNotificationServiceExtension,那么就把它放在里面`use_frameworks!,然后执行pod decompose pod install

相关问题