Cordova Firebase插件-在iOS上的通知栏中不显示通知

Cordova Firebase插件-在iOS上的通知栏中不显示通知,ios,cordova,push-notification,firebase-cloud-messaging,Ios,Cordova,Push Notification,Firebase Cloud Messaging,我将这个插件与cordova一起使用:cordova插件firebase 0.1.18“Google firebase插件”它在android上运行良好,在ios上也可以,我用这个方法获得了令牌 window.FirebasePlugin.getToken 但通知不会出现在通知栏中,无论它是在前台还是后台,都不会使用该方法回调通知 window.FirebasePlugin.onNotificationOpen 在服务器端,我像这样发布 def sendNotfMessage(def reg

我将这个插件与cordova一起使用:cordova插件firebase 0.1.18“Google firebase插件”它在android上运行良好,在ios上也可以,我用这个方法获得了令牌

window.FirebasePlugin.getToken
但通知不会出现在通知栏中,无论它是在前台还是后台,都不会使用该方法回调通知

window.FirebasePlugin.onNotificationOpen
在服务器端,我像这样发布

def sendNotfMessage(def registrationIds,def body,def title){
            def data  = [:]
            data['body']=body
            data['title']=title
            data['icon']="myicon"
            data['sound']="mySound"
            def postJson = [:]
            postJson['priority'] = "high"
            postJson['notification'] = data
            postJson['registration_ids']=registrationIds
            return sendFcmNotf(postJson)
        }


def sendFcmNotf(def postJson){

    HttpTransport transport = new NetHttpTransport()
    HttpRequest request = transport.createRequestFactory().buildPostRequest(new GenericUrl("https://fcm.googleapis.com/fcm/send"), new JsonHttpContent(new JacksonFactory(), postJson));
    HttpHeaders reqHeaders = new HttpHeaders()
    reqHeaders.setAuthorization("key=${grailsApplication.config.android.fcm.api.key}")
    reqHeaders.setAccept("application/json")
    reqHeaders.setContentType("application/json")

    request.setHeaders(reqHeaders)

    request.setUnsuccessfulResponseHandler(new HttpBackOffUnsuccessfulResponseHandler(new ExponentialBackOff.Builder()
            .setInitialIntervalMillis(500)
            .setMaxElapsedTimeMillis(900000)
            .setMaxIntervalMillis(6000)
            .setMultiplier(1.5)
            .setRandomizationFactor(0.5)
            .build()
            ))

    try {


        HttpResponse response = request.execute();

        InputStream is = response.getContent()
        BufferedReader br = new BufferedReader(new InputStreamReader(is))

        StringBuilder sb = new StringBuilder();

        String line = null;
        try {
            while ((line = br.readLine()) != null) {
                sb.append(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                is.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        ObjectMapper mapper = new ObjectMapper()
        Map<String, Object> responseMap = mapper.readValue(sb.toString(), new TypeReference<Map<String, Object>>(){})

        // Process response JSON per https://firebase.google.com/docs/cloud-messaging/server#response
        if(responseMap && (responseMap['failure'] != 0 || responseMap['canonical_ids'] != 0)){
            if(responseMap['message_id'] && responseMap['registration_id']){

                log.info "New push token, setting to ${responseMap['registration_id']}"

                // TODO Notify backend that token has changed, i.e. update

            }

        }else{

            def results = responseMap['results']

            if(results){

                results.each{

                    if(it['error']){

                        if(it['error'] == "NotRegistered"){

                            log.info 'NotRegistered, updating AppToken to null'

                            // TODO Notify backend this token is no longer valid, i.e. delete

                        }
                    }

                }

            }

        }


        return responseMap

    }catch(HttpResponseException e){

        log.error "Error: ${e.toString()}"

        return (['SC' : e.getStatusCode(), 'M' : e.getStatusMessage() ])

    }
}
}
def sendNotfMessage(def注册ID、def正文、def标题){
def数据=[:]
数据['body']=body
数据['title']=标题
数据['icon']=“我的图标”
数据['sound']=“mySound”
def postJson=[:]
postJson['priority']=“高”
postJson['notification']=数据
postJson['registration_ids']=registrationIds
返回sendFcmNotf(postJson)
}
def sendFcmNotf(def postJson){
HttpTransport传输=新的NetHttpTransport()
HttpRequest请求=transport.createRequestFactory().buildPostRequest(新的GenericUrl(“https://fcm.googleapis.com/fcm/send新的JsonHttpContent(新的JacksonFactory(),postJson));
HttpHeaders reqHeaders=新的HttpHeaders()
setAuthorization(“key=${grailsApplication.config.android.fcm.api.key}”)
reqHeaders.setAccept(“应用程序/json”)
reqHeaders.setContentType(“应用程序/json”)
request.setHeaders(reqHeaders)
request.setUnsuccessfulResponseHandler(新的HttpBackOffUnsuccessfulResponseHandler(新的ExponentialBackOff.Builder())
.setInitialIntervalMillis(500)
.setMaxElapsedTimeMillis(900000)
.setMaxIntervalMillis(6000)
.设定乘数(1.5)
.setRandomizationFactor(0.5)
.build()
))
试一试{
HttpResponse response=request.execute();
InputStream is=response.getContent()
BufferedReader br=新的BufferedReader(新的InputStreamReader(is))
StringBuilder sb=新的StringBuilder();
字符串行=null;
试一试{
而((line=br.readLine())!=null){
某人附加(行);
}
}捕获(IOE异常){
e、 printStackTrace();
}最后{
试一试{
is.close();
}捕获(IOE异常){
e、 printStackTrace();
}
}
ObjectMapper映射器=新的ObjectMapper()
Map responseMap=mapper.readValue(sb.toString(),new TypeReference(){})
//进程响应JSON perhttps://firebase.google.com/docs/cloud-messaging/server#response
if(responseMap&(responseMap['failure']!=0 | | responseMap['canonical_-id']!=0)){
if(responseMap['message\u id']和&responseMap['registration\u id'])){
log.info“新推送令牌,设置为${responseMap['registration\u id']}”
//TODO通知后端令牌已更改,即更新
}
}否则{
def results=responseMap['results']
如果(结果){
结果:各{
如果(它['error']){
如果(它['error']=“notregisted”){
log.info“未注册,正在将AppToken更新为null”
//TODO Notify后端此令牌不再有效,即删除
}
}
}
}
}
返回响应映射
}捕获(HttpResponseException e){
log.error“错误:${e.toString()}”
返回(['SC':e.getStatusCode(),'M':e.getStatusMessage())
}
}
}

我知道了,实际上我错过了在

console.firebase.google.com 
有关更多详细信息,请参阅该链接。
?

我知道了,事实上我错过了在console.firebase.google.com上传APNs证书的机会,谢谢大家,你应该继续并:)