在英特尔 xdk 上实现 pushwoosh

Posted

技术标签:

【中文标题】在英特尔 xdk 上实现 pushwoosh【英文标题】:implementing pushwoosh on intel xdk 【发布时间】:2015-05-04 15:30:10 【问题描述】:

如何在英特尔 xdk 上为 android 应用程序实现 pushwoosh。网上有没有分步教程。我已将以下代码放在索引页面上,添加了插件,构建了应用程序并将其安装在我的手机上,但推送通知没有通过。请帮忙

<script>
    function onDeviceReady() 
        if( navigator.splashscreen && navigator.splashscreen.hide )    // Cordova API detected
            navigator.splashscreen.hide() ;
        
        if( window.intel && intel.xdk && intel.xdk.device )            // Intel XDK device API detected, but...
            if( intel.xdk.device.hideSplashScreen )                     // ...hideSplashScreen() is inside the base plugin
                intel.xdk.device.hideSplashScreen() ;
        

        initPushwoosh();
    
    document.addEventListener("deviceready", onDeviceReady, false) ;



    function initPushwoosh() 
    
        var pushNotification = cordova.require("com.pushwoosh.plugins.pushwoosh.PushNotification");

        //set push notification callback before we initialize the plugin
        document.addEventListener('push-notification', function(event) 
            //get the notification payload
            var notification = event.notification;

            //display alert to the user for example
            alert(notification.aps.alert);

            //clear the app badge
            pushNotification.setApplicationIconBadgeNumber(0);
        );

        //initialize the plugin
        pushNotification.onDeviceReady(pw_appid:"****-****");

        //register for pushes
        pushNotification.registerDevice(
            function(status) 
                var deviceToken = status['deviceToken'];
                console.warn('registerDevice: ' + deviceToken);
            ,
            function(status) 
                console.warn('failed to register : ' + JSON.stringify(status));
                alert(JSON.stringify(['failed to register ', status]));
            
        );

        //reset badges on app start
        pushNotification.setApplicationIconBadgeNumber(0);
    

</script>

【问题讨论】:

【参考方案1】:

我昨天也刚刚实现了这个,它工作正常。以下是我为简化问题所做的工作。

    在项目选项卡中添加第三方插件。我使用了注册的 cordova 插件,而不是 github 插件。 获取相应配置指南中概述的证书 (ios) 和凭据 (Android)。 (iOS https://www.pushwoosh.com/programming-push-notification/ios/ios-configuration-guide/ 和 Android https://www.pushwoosh.com/programming-push-notification/android/android-gcm-api-configuration/ 然后按照 iOS 和 android phonegap / cordova 实施的说明进行操作。我没有完全使用说明,我基本上下载了示例文件并在我的项目中创建了相同的文件(index.js、PushwooshAndroid.js、PushwooshiOS.js) 在 index.js 文件中为您的平台更改应用 ID 和其他特定 ID。

    在 index.html 文件中我添加了这些脚本

    我把它们放在正文而不是标题中。然后将这一行添加到我的init函数中deviceready下:document.addEventListener("deviceready", initPushwoosh, true);

    就是这样。有效。我确实每次初始化都有问题,但除此之外它可以工作。

【讨论】:

抱歉,在我写完上面的第 5 步后,它删除了脚本调用。基本上使用脚本标签来包含步骤 3 中的 3 个 js 文件。

以上是关于在英特尔 xdk 上实现 pushwoosh的主要内容,如果未能解决你的问题,请参考以下文章

英特尔 XDK 的云构建如何工作?

AJAX,英特尔 XDK 不工作

如何在英特尔 xdk 的列表视图中显示 json 数据

英特尔 XDK 的不同性能

如何在英特尔 xdk 的列表视图中动态显示 json 数据

英特尔 xdk 科尔多瓦本地插件不起作用