未捕获的TypeError:无法在window.plugins.OneSignal.getIds

时间:2018-01-31 15:18:05

标签: javascript visual-studio-cordova onesignal

我的Visual Studio 2017中有一个cordova项目。如果我运行 cordova要求 ,我会得到以下信息:

Java JDK:已安装1.8.0 Android SDK:已安装
Android目标:已安装android-19,android-21,android-22,android-23,android-26,Google Inc.:Google API:19,Google Inc.:Google API:23
Gradle:已安装

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

“未捕获的TypeError:无法读取未定义的属性'getIds'”。

这是我的javascript代码片段:

function registerOneSignalDevice(callback) {

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

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

任何想法......

1 个答案:

答案 0 :(得分:0)

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

在2.1.0版本中不推荐使用getIds方法。您应该更新到他们的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-