appId 已设置,但请调用 setLaunchOptions(launchOptions) 完成 OneSignal 初始化!在电容器

Posted

技术标签:

【中文标题】appId 已设置,但请调用 setLaunchOptions(launchOptions) 完成 OneSignal 初始化!在电容器【英文标题】:appId set, but please call setLaunchOptions(launchOptions) to complete OneSignal init! in Capacitor 【发布时间】:2021-11-06 13:28:55 【问题描述】:

我正在 Ionic 应用程序中开发推送通知,我的问题是我无法在 OneSignal 中看到用户并发送通知。我在 xCode 控制台中的唯一日志是:

appId set, but please call setLaunchOptions(launchOptions) to complete OneSignal init!

这是我的信息:

Ionic:

   Ionic CLI                     : 5.4.16
   Ionic Framework               : @ionic/angular 5.7.0
   @angular-devkit/build-angular : 12.0.5
   @angular-devkit/schematics    : 12.0.5
   @angular/cli                  : 12.0.5
   @ionic/angular-toolkit        : 4.0.0

Capacitor:

   Capacitor CLI   : 3.1.1
   @capacitor/core : 3.2.2

Cordova:

   Cordova CLI       : 6.2.0
   Cordova Platforms : none
   Cordova Plugins   : no whitelisted plugins (1 plugins total)

Utility:

   cordova-res : 0.15.3
   native-run  : 1.4.1

System:

   ios-sim : ios-sim/9.0.0 darwin-x64 node-v12.18.4
   NodeJS  : v12.18.4 (/usr/local/bin/node)
   npm     : 6.14.8
   OS      : macOS Big Sur
   Xcode   : Xcode 12.5.1 Build version 12E507

android 中我遇到了同样的错误。

【问题讨论】:

看到同样的问题。 @JamesParker 我的建议是尝试降级 OneSignal 的版本。我试过了,效果很好。 您使用的是第 3 版电容器吗?在我更新到需要 iOS 12 的电容器 3 之前,我一直在运行一个信号的版本 3,没有任何问题。 【参考方案1】:

此警告提供信息,不会影响插件功能。

您可以在插件所依赖的 OneSignal iOS 框架的 OneSignal.m 文件中找到生成此警告的代码。当appId 为set repeatedly 或设置appIdlaunchOptions object has not yet been initialized 时会发生这种情况。

如果你查看Plugin源文件和初始化函数,你会看到设置appId后it does callsetLaunchOptions(launchOptions)

    NSString* appIdStr = (appId ? [NSString stringWithUTF8String: appId] : nil);
    [OneSignal setMSDKType:@"cordova"];
    [OneSignal setAppId:appIdStr];
    [OneSignal initWithLaunchOptions:launchOptions];

上面的代码在[OneSignal setAppId:appIdStr] 触发警告,但随后立即使用[OneSignal initWithLaunchOptions:launchOptions](这是setLaunchOptions(launchOptions) Swift 接口底层的Objective-C 函数)解决它。

【讨论】:

以上是关于appId 已设置,但请调用 setLaunchOptions(launchOptions) 完成 OneSignal 初始化!在电容器的主要内容,如果未能解决你的问题,请参考以下文章

微信支付提示调用支付jsapi缺少参数appid怎么回事

tt语音请求缺少或未设置appid

H5在微信公众号里调用微信支付总结(前端)

微信支付时jsapi缺少参数appid怎么办

Java 微信公众号消息推送(从零开始)

微信小程序用户授权登录