apicloud 极光推送app端接收不到推送信息

H5 生成的App 用了apicloud的极光推送模块。 用极光后台能成功发送消息,但是app 接收不到这发送的消息。图片描述

首页监听代码
<script>
var jpush = null;
apiready = function() {
initPush();
}

function initPush(){

// 实例化极光推送对象  
jpush = api.require('ajpush');  
// 初始化推送服务,只Android有效,ios上会自动初始化  
jpush.init(function(ret, err) {  

});  
//设置推送时间  
jpush.setPushTime({  
  days: 1,  
  startHour: 0,  
  endHour: 23  
}, function(ret, err){});  
// 监听应用进入后台,通知jpush暂停事件  
api.addEventListener({  
    name : 'pause'  
}, function(ret, err) {  
    //统计-app暂停  
    //jpush.onResume();  
});  
// 监听应用恢复到前台,通知jpush恢复事件  
api.addEventListener({  
    name : 'resume'  
}, function(ret, err) {  
    //统计-app恢复  
    jpush.onResume();  
});  
// 监听通知被点击(Android)  
api.addEventListener({  
    name : 'appintent'  
}, function(ret, err) {  
    if (ret && ret.appParam.ajpush) {  
        // 通知被点击后处理  
        executeNotice(ret, "appintent");  
    }  
});  
// 监听通知被点击(iOS应用处于后台)  
api.addEventListener({  
    name : 'noticeclicked'  
}, function(ret, err) {  
    if (ret && ret.value) {  
        // 通知被点击后处理  
        executeNotice(ret, "noticeclicked");  
    }  
});  
// 消息监听  
jpush.setListener(function(re, er) {  
    //alert($api.jsonToStr(re));  
    if (re) {  
        var tit = re.title; // 标题  
        var con = re.content; // 内容  
        var ex = {}; // 附加字段  
        // 附加字段不为空  
        if(re.extra){  
            var ext = re.extra;  
            ex = {"extra" : ext};  
        }  
        // 转为状态栏通知  
        notification(tit, con, ex);  
    }  
});  

}

// 监听到的消息转为状态栏通知
function notification(t, c, e){

api.notification({  
    vibrate : [300, 500], //震动时间节奏  
    sound : 'default', //系统默认提示音  
    light : false, //是否亮灯,需设备支持  
    notify : {//状态栏通知  
        title : t || "系统消息", //标题,默认值为应用名称,只Android有效  
        content : c, //内容,默认值为'有新消息'  
        extra : e, //传递给通知的数据,在通知被点击后,该数据将通过监听函数回调给网页  
        updateCurrent : false//是否覆盖更新已有的通知,取值范围true|false。只Android有效  
    }  
}, function(ret, err) {  
    alert(1)
    //if(ret){  
    //api.alert(ret.id);//id为通知ID,可用于取消通知  
    //}  
});  

}

// 通知被点击后处理
function executeNotice (ret, type) {

var ajpush_obj; // 信息对象  
var extra = {}; // 附加字段  
if(type == "appintent"){  
    ajpush_obj = ret.appParam.ajpush;  
    if(!isEmptyObject(ajpush_obj)){  
        if(!isEmptyObject(ajpush_obj.extra)){  
            extra = ajpush_obj.extra;  
        }  
    }  
}else if(type == "noticeclicked"){  
    ajpush_obj = ret.value;  
    if(!isEmptyObject(ajpush_obj)){  
        c = ajpush_obj.content;  
        // 转为json字符串  
        ajpush_obj = JSON.stringify(ajpush_obj);  
        // 再转为json对象  
        ajpush_obj = $.parseJSON(ajpush_obj);  
        // 判断附加参数是否为空  
        if(!isEmptyObject(ajpush_obj.extra)){  
            //extra = $.parseJSON(ajpush_obj.extra);  
            extra = ajpush_obj.extra;  
        }  
    }  
}  

// 附加字段不为空  
if(!isEmptyObject(extra)){  
    if (api.systemType === "android") {  
        // 赋值到附加字段(格式化为json)  
        extra = JSON.parse(extra);  
    }  
    // 判断附加字段值  
    if (extra.aa) { // 极光推送后台中添加的附加字段  
        // 你的逻辑代码  
    }  
}  

}
</script>

阅读 4.3k
1 个回答

去极光推送社区问吧,之前我们也是ios无法推送,最后是那边的技术排出来的,服务端的开发环境没有换成生产环境

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题