PhoneGap:本地通知不适用于iOS

时间:2015-12-10 13:27:56

标签: ios iphone cordova phonegap-plugins phonegap-build

我目前正在尝试为Android和iOS构建应用程序,该应用程序应该能够向用户发送本地通知。

我已设法在Android上发送本地通知,但我无法让它在iOS上运行。

当我在iOS 9上启动应用程序时,iPhone会显示一个提示,要求我允许应用程序发送通知。允许应用发送通知后,仍然没有通知。

在Android上:启动应用 - > 通知文字“确定”

在iOS 9上:启动应用 - >允许发送通知 - > 无通知

我还尝试在应用中添加一个触发... <plugin name="cordova-plugin-local-notifications-mm"/> ... 的按钮,但这不起作用。

我甚至创建了新的Apple证书和配置文件。

我正在使用此插件:https://github.com/katzer/cordova-plugin-local-notifications

并尝试了这个:https://build.phonegap.com/plugins/4859

我正在使用PhoneGap Build服务构建应用程序。

有没有人知道为什么它可以在Android上运行而不在iOS上运行?

我的代码:

config.xml中:

<script src="cordova.js"></script>
<script src="local-notification.js"></script>
<script src="js/index.js"></script>
<script src="js/notify.js"></script>

的index.html:

var app = {
    initialize: function () {
        this.bindEvents();
    },
    bindEvents: function () {
        document.addEventListener('deviceready', this.onDeviceReady, false);
    },
    onDeviceReady: function () {
        Notifier.registerPermission();
    }
};
app.initialize();

index.js:

var Notifier = {
    registerPermission: function () {
        window.plugin.notification.local.registerPermission(function (granted) {
            Notifier.notify('OK');
        });
    },
    notify: function (message) {
        var now = new Date();
        window.plugin.notification.local.add({
            id: parseInt(new Date().getTime()),
            message: message,
            date: now
        });
    }
};

notify.js:

@MappedSuperclass 
public abstract class AbstractParent { 
    List<CommonObject> commonObjects;

    public abstract List<CommonObject> getCommonObjects(); 
}

@Entity 
@Table 
public class Child1 extends AbstractParent {

    @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
    @JoinColumn(name="child1_id", nullable = false) 
    @OrderColumn(name = "sort_index") 
    public List<CommonObject> getCommonObject() { 
       return this.commonObjects; 
    } 
}

@Entity 
@Table 
public class Child2 extends AbstractParent {

    @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
    @JoinColumn(name="child2_id", nullable = false) 
    @OrderColumn(name = "sort_index") 
     public List<CommonObject> getCommonObject() { 
         return this.commonObjects; 
     } 
}

1 个答案:

答案 0 :(得分:0)

刚刚完成一个ibeacon应用程序,即使在应用程序关闭或手机重新启动时也能通知ios和android。

请务必添加:

cordova.plugins.locationManager.requestAlwaysAuthorization();

这就是为我做的事情。