有這樣一種場(chǎng)景,當(dāng)你在手機(jī)APP上輸入你的信息,會(huì)自動(dòng)跳出一個(gè)彈窗,表示某任務(wù)已執(zhí)行。最簡(jiǎn)單的一個(gè)例子就是當(dāng)你輸入手機(jī)號(hào),點(diǎn)擊獲取驗(yàn)證碼的時(shí)候,就會(huì)跳出一個(gè)對(duì)話框,說(shuō)“驗(yàn)證碼已發(fā)送到手機(jī),請(qǐng)注意查收”,這些都是如何實(shí)現(xiàn)的。
就以我參與開(kāi)發(fā)的一款移動(dòng)報(bào)表FineReport為例,講解一下如何開(kāi)發(fā)手動(dòng)推送APP消息。
這個(gè)APP里有這樣一個(gè)應(yīng)用,它是可以實(shí)現(xiàn)在客戶端填報(bào)錄入數(shù)據(jù),然后數(shù)據(jù)上傳到數(shù)據(jù)庫(kù)中的這樣一個(gè)功能,也就是所謂的移動(dòng)化辦公,這在企業(yè)辦公方面用得比較多。當(dāng)數(shù)據(jù)錄入系統(tǒng)成功后,會(huì)自動(dòng)發(fā)送消息至APP提示數(shù)據(jù)已更新。
此功能的實(shí)現(xiàn)就是在數(shù)據(jù)錄入成功的事件中添加js,使用ajax發(fā)送消息請(qǐng)求

FR.ajax(
{
url: 'http://192.168.1.120:8033/WebReport/ReportServer?cmd=send_messages&op=fs_mobile_main',
type: 'POST',

data:
{user:'sunlin', text:'填報(bào)成功,模板A有數(shù)據(jù)更新',url:'http://192.168.1.120:8033/WebReport/ReportServer?reportlet=app.cpt&op=write',title:'app'},

success: function(msg)
{
alert( "提示" + msg );
}
});

user:接收消息的人,可以是多個(gè),多個(gè)用戶之間用逗號(hào)分割,如“A,B” (必填)
text:消息內(nèi)容 (選填)
url:打開(kāi)地址(選填),在點(diǎn)擊消息之后 進(jìn)入app打開(kāi)的地址
title: 打開(kāi)地址的頁(yè)面標(biāo)題(選填)
舉例
例子1、推送純文本消息
在填報(bào)的模板,增加填報(bào)成功事件,示例代碼如下:

FR.ajax(
{
url: 'http://192.168.1.120:8033/WebReport/ReportServer?cmd=send_messages&op=fs_mobile_main',
type: 'POST',

data:
{user:'sunlin', text:'填報(bào)成功,模板A有數(shù)據(jù)更新'},

success: function(msg)
{
alert( "提示" + msg );
}
});


例2、點(diǎn)擊消息后,進(jìn)入app,并且打開(kāi)地址頁(yè)面
在后臺(tái)填報(bào)的模板,增加填報(bào)成功事件,示例代碼如下:

FR.ajax(
{
url: 'http://192.168.1.120:8033/WebReport/ReportServer?cmd=send_messages&op=fs_mobile_main',
type: 'POST',

data:
{user:'sunlin', text:'填報(bào)成功,模板A有數(shù)據(jù)更新',url:'http://192.168.1.120:8033/WebReport/ReportServer?reportlet=app.cpt&op=write',title:'app'},

success: function(msg)
{
alert( "提示" + msg );
}
});

