热爱web前端
技术分享平台

mui框架集成push设置信息

最近使用mui开发一个小项目,功能需求有个消息推送,使用mui集成个推的设置信息分享一下。

1.首先在manifest.json文件中配置如下信息:

在permissions节点下添加

 

"Push": {
			"description": "管理推送消息插件"
		}

description可以自由配置。
然后在plus节点下的distribute节点下添加如下信息:

"plugins": {
				"push": {
					"igexin": {
						"appid": "8Agb6Y9nQk9C6pr6bOeBx",
						"appkey": "I6qIHwG95O6SN54f690Tm6",
						"appsecret": "cqTxrLSnRp5d5bAEIm0aC8"
					}
				}
			}

其中appid、appkey、appsecret均为在个推中添加应用之后获取的数据。

2.在manifest.json文件中的模块权限配置中添加push消息推送模块),并勾选模块权限配置信息。

3.还是在文件中的sdk配置项检查消息推送模块中的appid、appkey、appsecret是否与代码视图中的一致。配置完毕可打包应用在个推后台进行测试。

 

用户可以使用JS代码监听推送的消息,现在可以监听“receive”事件和“click”事件。如应用在前台时收到推送消息,在IOS平台会触发“receive”事件回调,在Android平台如发送的是透传消息并且消息不符合格式时会触发“receive”事件。

当用户点击消息中心里的消息时会启动应用,并且在监听push事件的页面触发“click”事件。

 

用户可以在事件触发的回调中获取“pushMessage”对象,如发送的是普通消息可以在对象中获取推送消息的“title”属性和“content”属性的值,消息为透传消息,则可以获取“payload”属性的值。

如服务发送的透传消息格式正确可以获得“pushMessage”对象的payload属性,如发送的消息符合指定格式则“payload”属性json对象,如消息不符合格式则“payload”属性为string类型,内容和“content”节点内容相同。

 

 

透传消息的格式为{title:"通知标题",content:"通知内容",payload:"通知去干嘛这里可以自定义"}

应用开发的JS方法

1.配置推送平台信息。
监听收到消息事件和消息点击事件
2.添加推送事件监听。用户需要在plusready事件之后调用plus.push.addEventListener();监听推送消息或者监听推送消息点击事件。用户可以到消息回调中获取服务器发来的透传消息体。
receive事件监听:
如果客户端正在前台操作,并且已经监听了receive事件,则会触发这个事件。在IOS平台,应用在前台操作时消息不会进入消息中心。
Click事件监听:
应用在运行,用户点击了消息中心的消息,会触发click事件。

document.addEventListener( "plusready", function(){
    message = document.getElementById("message");
    // 监听点击消息事件
    plus.push.addEventListener( "click", function( msg ) {
        // 判断是从本地创建还是离线推送的消息
        switch( msg.payload ) {
            case "LocalMSG":
                outSet( "点击本地创建消息启动:" );
            break;
            default:
                outSet( "点击离线推送消息启动:");
            break;
        }
        // 提示点击的内容
        plus.ui.alert( msg.content );
        // 处理其它数据
        logoutPushMsg( msg );
    }, false );
    // 监听在线消息事件
    plus.push.addEventListener( "receive", function( msg ) {
        if ( msg.aps ) {  // Apple APNS message
            outSet( "接收到在线APNS消息:" );
        } else {
            outSet( "接收到在线透传消息:" );
        }
        logoutPushMsg( msg );
    }, false );
}, false );

清空消息可以调用接口plus.push.clear();,用户可以调用这个方法清空消息中心里推送给当前应用的消息。

 

 

function clearAllPush(){
    plus.push.clear();
    outSet( "清空所有推送消息成功!" );
}

开发者如需创建本地消息可以调用“createMessage”接口,通过设置“MessageOption”用户可以指定消息的标题,显示推送的时间或者使用延迟时间。在IOS平台,本地消息也会触发监听的“receive”事件,用户需要通过标识来区分是否是本地创建的消息。

function createLocalPushMsg(){
    var options = {cover:false};
    var str = dateToStr(new Date());
    str += ": 欢迎使用Html5 Plus创建本地消息!";
    plus.push.createMessage( str, "LocalMSG", options );
    outSet( "创建本地消息成功!" );
    outLine( "请到系统消息中心查看!" );
    if(plus.os.name=="iOS"){
        outLine('*如果无法创建消息,请到"设置"->"通知"中配置应用在通知中心显示!');
    }
}

在安卓平台用户可以获取系统消息中心内本应用的全部消息内容,IOS平台不支持此方法。

function listAllPush(){
    var msgs=null;
    switch ( plus.os.name ) {
        case "Android":
        msgs = plus.push.getAllMessage();
        break;
        default:
        break;
    }
    if ( !msgs ) {
        outSet( "此平台不支持枚举推送消息列表!" );
        return;
    }
    outSet( "枚举消息列表("+msgs.length+"):" );
    for ( var i in msgs ) {
        var msg = msgs[i];
        outLine( i+": "+msg.title+" - "+msg.content );
    }
}

开发者可以调用“getClientInfo”方法获取推送标识信息,如IOS平台的token,应用的APPID和设置的Appkey等信息。

function getPushInfo(){
    var info = plus.push.getClientInfo();
    outSet( "获取客户端推送标识信息:" );
    outLine( "token: "+info.token );
    outLine( "clientid: "+info.clientid );
    outLine( "appid: "+info.appid );
    outLine( "appkey: "+info.appkey );
}

未经允许不得转载:前端网(w3cvip) » mui框架集成push设置信息

分享到:更多 ()

评论 抢沙发

评论前必须登录!