React-Native OneSignal Android错误:OneSignal.init尚未被调用

时间:2018-05-16 15:31:57

标签: react-native onesignal

我尝试使用OneSignal react native软件包向我的用户发送推送通知。这适用于iOS。但是,在Android上,每次调用OneSignal库都会超时。当我运行adb logcat时,我在控制台中看到以下消息:

  

E / OneSignal:OneSignal.init尚未被调用。无法获得OSPermissionSubscriptionState

根据文档(https://documentation.onesignal.com/v5.0/docs/react-native-sdk-setup),这不是我应该手动执行的步骤,而是在设置订阅时由库本身执行。我为OneSignal写了一些帮助函数,它们抛出了上面的错误:

getPermissionSubscriptionState = () => {
    return new Promise((resolve, reject) => {
        OneSignal.getPermissionSubscriptionState((state) =>{
            console.log(state);
            resolve(state);
        });
    });
}

enablePushnotifications = async () => {
    OneSignal.registerForPushNotifications();
}

ensureSubscription = async () =>  {
    const status = await this.getPermissionSubscriptionState();
    console.log(status);
    if(!status.notificationsEnabled && !status.hasPrompted) {
        this.enablePushnotifications();
    }
    return status;
}

在我的根组件中,我调用ensureSubscription方法,如下所示:await OneSignalHelper.ensureSubscription();。在ensureSubscription()内我调用getPermissionSubscriptionState(),但是一旦我这样做,就会打印出上述错误。

非常感谢任何帮助。

0 个答案:

没有答案