Javascript 未捕获类型错误:无法读取属性';getid';window.plugins.OneSignal.getIds中未定义的

Javascript 未捕获类型错误:无法读取属性';getid';window.plugins.OneSignal.getIds中未定义的,javascript,visual-studio-cordova,onesignal,Javascript,Visual Studio Cordova,Onesignal,我的Visual Studio 2017中有一个cordova项目。如果我运行科尔多瓦要求,我会得到以下信息: Java JDK:已安装1.8.0 Android SDK:已安装 Android目标:已安装Android-19、Android-21、Android-22、Android-23、Android-26、谷歌公司:谷歌API:19、谷歌公司:谷歌API:23 格雷德尔:已安装 在chrome中调试工作非常完美,但在我的设备中,我发现以下错误: “未捕获的TypeError:无法读取未定

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

Java JDK:已安装1.8.0
Android SDK:已安装
Android目标:已安装Android-19、Android-21、Android-22、Android-23、Android-26、谷歌公司:谷歌API:19、谷歌公司:谷歌API:23
格雷德尔:已安装

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

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

这是我的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和ionic、Phonegap和IntelXDK等变体SDK,您可以使用getPermissionSubscriptionState方法和addSubscriptionObserver获取用户ID,即PlayerID

有关使用getPermissionSubscriptionState的详细信息,请参阅:


有关添加订阅观察员的信息,请参见:

尝试使用if并检查Onesignal!=未定义感谢回答,当我检查您的建议返回时,OneSigna未定义。可能是因为我的Cordova版本,目前是6.3.1,由visual studio 2017默认安装。在这种情况下,是否有能力在visual studio 2017中升级Cordova版本?