Uncaught TypeError: Cannot read property 'getIds' of undefined at window.plugins.OneSignal.getIds

Uncaught TypeError: Cannot read property 'getIds' of undefined at window.plugins.OneSignal.getIds

我在 Visual Studio 2017 中有一个 cordova 项目。如果我 运行 cordova 要求 我得到以下:

Java JDK: 安装了 1.8.0
Android SDK:已安装
Android 目标:已安装 android-19,android-21,android-22,android-23,android-26,Google 公司:Google APIs:19,Google 公司:Google APIs:23
Gradle:已安装

在 chrome 中调试工作完美,但在我的设备中出现以下错误:

"Uncaught TypeError: Cannot read property 'getIds' of undefined".

那是我的 javascript 代码的片段:

function registerOneSignalDevice(callback) {

    window.plugins.OneSignal.getIds(function (ids) {

        setStorage("device_id", ids.userId);
        setStorage("device_platform", device.platform);
        if (callback != undefined) {
            callback();
        }
    });
}

任何想法...

OneSignal 建议使用 Cordova 6.4.0 或更新版本。您可能还想更新到最新的 OneSignal Cordova SDK。

getIds 方法在 2.1.0 版本中已弃用。你应该更新到他们的 SDK 2.2.5

对于 Cordova 和变体 SDK,如 ionic、Phonegap 和 IntelXDK,您可以使用 getPermissionSubscriptionState 方法和 addSubscriptionObserver 获取 UserIds aka PlayerIds。

有关使用 getPermissionSubscriptionState 的更多信息,请参阅:https://documentation.onesignal.com/docs/cordova-sdk#section--getpermissionsubscriptionstate-

添加订阅观察者见:https://documentation.onesignal.com/docs/cordova-sdk#section--addsubscriptionobserver-