【问题标题】:com.pushwoosh.plugins.pushwoosh 3.6.15 crushes the appcom.pushwoosh.plugins.pushwoosh 3.6.15 粉碎应用
【发布时间】:2015-11-11 11:15:39
【问题描述】:

我正在使用 Intel-XDK 开发应用程序,我想实现推送通知。 我正在使用 pushwoosh cordova 插件 3.6.15 成功构建后,我将其安装在我的设备上,但应用程序崩溃了。 当我添加插件但不使用它时,它不会崩溃 这是我为了使用插件而添加的代码行:

try {
                if (/(android)/i.test(navigator.userAgent)) {
                    registerPushwooshAndroid();
                } else if (/(iphone|ipad)/i.test(navigator.userAgent)) {

                }
            }
            catch (err) {
                alert(err.message);
            }


This is the implementation of PushwooshAndroid.js:


/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

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

    //set push notifications handler
    document.addEventListener('push-notification',
        function(event) {
            var title = event.notification.title;
            var userData = event.notification.userdata;

            //dump custom data to the console if it exists
            if (typeof(userData) != "undefined") {
                console.warn('user data: ' + JSON.stringify(userData));
            }

            //and show alert
            alert(title);

            //stopping geopushes
            //pushNotification.stopGeoPushes();
        }
    );

    //initialize Pushwoosh with projectid: "GOOGLE_PROJECT_ID", appid : "PUSHWOOSH_APP_ID". This will trigger all pending push notifications on start.
    pushNotification.onDeviceReady({
        projectid: "My ProjectID",
        pw_appid: "My pw_appid"
    });

    //register for push notifications
    pushNotification.registerDevice(
        function(token) {
            alert(token);
            //callback when pushwoosh is ready
            onPushwooshAndroidInitialized(token);
        },
        function(status) {
            alert("failed to register: " + status);
            console.warn(JSON.stringify(['failed to register ', status]));
        }
    );
}

function onPushwooshAndroidInitialized(pushToken) {
    //output the token to the console
    console.warn('push token: ' + pushToken);

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

    //if you need push token at a later time you can always get it from Pushwoosh plugin
    pushNotification.getPushToken(
        function(token) {
            console.warn('push token: ' + token);
        }
    );

    //and HWID if you want to communicate with Pushwoosh API
    pushNotification.getPushwooshHWID(
        function(token) {
            console.warn('Pushwoosh HWID: ' + token);
        }
    );

    pushNotification.getTags(
        function(tags) {
            console.warn('tags for the device: ' + JSON.stringify(tags));
        },
        function(error) {
            console.warn('get tags error: ' + JSON.stringify(error));
        }
    );


    //set multi notificaiton mode
    //pushNotification.setMultiNotificationMode();
    //pushNotification.setEnableLED(true);

    //set single notification mode
    //pushNotification.setSingleNotificationMode();

    //disable sound and vibration
    //pushNotification.setSoundType(1);
    //pushNotification.setVibrateType(1);

    pushNotification.setLightScreenOnNotification(false);

    //setting list tags
    //pushNotification.setTags({"MyTag":["hello", "world"]});

    //settings tags
    pushNotification.setTags({
            deviceName: "hello",
            deviceId: 10
        },
        function(status) {
            console.warn('setTags success');
        },
        function(status) {
            console.warn('setTags failed');
        }
    );

    //Pushwoosh Android specific method that cares for the battery
    //pushNotification.startGeoPushes();
}


Please assist me
I would have sent the APK but I cant becuase its size is 47M
Another thing, I tried the pushwoosh tutorial project and it did not fail, I don't know why
Thanks for your help

【问题讨论】:

  • 我的 index.html 代码中也包含了这些 js 脚本:

标签: cordova push-notification cordova-plugins intel-xdk pushwoosh


【解决方案1】:

请确保您按照文档添加 Pushwoosh XDK 插件: http://docs.pushwoosh.com/docs/cordova-phonegap

对于 Intel XDK:添加 pushwoosh-intel-xdk-plugin 作为第三方插件

【讨论】:

  • 嗨,我完全按照文档中的方式添加了它。它只是不起作用。它与 admob 插件有关,它们不能很好地相处。我需要帮助来通过 pushwoosh 或其他使用 intel-xdk 的方式实现推送通知,但我不知道如何
  • 可能 admob 使用旧的 Google Play 服务库。你能附上应用程序的崩溃日志吗?真的很难猜。
猜你喜欢
  • 1970-01-01
  • 2011-07-20
  • 1970-01-01
  • 2011-11-18
  • 2016-12-11
  • 2020-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多