Cordova OneSignal插件无法正常使用

时间:2016-11-16 21:36:42

标签: javascript jquery cordova plugins onesignal

我在cordova的onesignal插件中遇到了一个小问题。 当我第一次在wifi上运行该应用程序时,如果我打开移动数据就可以获得用户的ID,它可以正常工作,也可以在wifi上运行。

这是我在信号调试器上遇到的错误:

enter image description here

的index.html:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport"
          content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <title>My App</title>
</head>
<body>
Test
</body>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/index.js"></script>
</html>

Index.js

var app = {

    initialize: function()
    {
        this.bindEvents();
    },
    dump: function (obj) {
        var out = '';
        for (var i in obj) {
            out += i + ": " + obj[i] + "\n";
        }

        alert(out);
    },
    bindEvents: function()
    {
        document.addEventListener('deviceready', this.onDeviceReady, false);    
    },
    onDeviceReady: function()
    {
        app.receivedEvent('deviceready');
    },
    receivedEvent: function(id)
    {
        alert('init');
        window.plugins.OneSignal
    .startInit('onesignalid', 'googleproject')
    .inFocusDisplaying(window.plugins.OneSignal.OSInFocusDisplayOption.Notification)
    .handleNotificationOpened(app.notificationOpenedCallback)
    .endInit();
    app.getIds();
    },
    getIds: function()
    {
        window.plugins.OneSignal.getIds(function(ids){
            app.dump(ids);
            $.post('http://example.com/app_register_notif', {uid:'4764',onesignalid: ids.userId,onesignaltoken: ids.pushToken});
        });
    }
};

app.initialize();

1 个答案:

答案 0 :(得分:0)

当Google Play服务无法连接以获取推送通知所需的注册ID时,会从Google Play服务返回SERVICE_NOT_AVAILABLE。如果您的手机连接正常,您的wifi网络可能会阻止与Google的连接。

有关详细信息,请参阅以下堆栈溢出答案。 https://stackoverflow.com/a/18325226/1244574