2022
我们一起努力

APP推送消息(uniapp推送消息)

本文目录:

  • 1、怎么实现APP消息推送?
  • 2、如何实现app消息推送
  • 3、如何进行app消息推送(push)?
  • 4、怎么关掉app推送消息
  • 5、APP消息推送(APP Push)解决方案-服务端工作逻辑和实现
  • 6、怎么关闭各种app推送的消息

怎么实现APP消息推送?

主要介绍其中的五种实现方式:短轮询、Comet、Flash XMLSocket、Server-sent、WebSocket

1、短轮询

指在特定的的时间间隔(如每10秒),由浏览器对服务器发出HTTP request,然后由服务器返回最新的数据给客户端的浏览器。浏览器做处理后进行显示。无论后端此时是否有新的消息产生,都会进行响应

2、Comet

包括了长轮询和长连接,长轮询是客户端向服务器发送Ajax请求,服务器接到请求后hold住连接,直到有新消息才返回响应信息并关闭连接,客户端处理完响应信息后再向服务器发送新的请求;长连接是在页面中的iframe发送请求到服务端,服务端hold住请求并不断将需要返回前端的数据封装成调用javascript函数的形式响应到前端,前端不断收到响应并处理

3、Flash XMLSocket

在 HTML 页面中内嵌入一个使用了 XMLSocket 类的 Flash 程序。JavaScript 通过调用此 Flash 程序提供的socket接口与服务器端的socket进行通信。JavaScript 在收到服务器端以 XML 格式传送的信息后可以很容易地控制 HTML 页面的内容显示

4、Server-sent

服务器推指的是HTML5规范中提供的服务端事件EventSource,浏览器在实现了该规范的前提下创建一个EventSource连接后,便可收到服务端的发送的消息,实现一个单向通信。客户端进行监听,并对响应的信息处理显示

5、WebSocket

WebSocket是HTML5下一种新的协议,是基于TCP的应用层协议,只需要一次连接,便可以实现全双工通信,客户端和服务端可以相互主动发送消息。客户端进行监听,并对响应的消息处理显示

针对自己系统的应用场景选择合适的推送方案才是合理的,因此最后简单说一下实现个性化推送的两种方式。第一种很简单,直接使用第三方实现的推送,无需复杂的开发运维,直接可以使用。第二种就是自己封装,可以选择如今较为火热的WebSocket来实现系统的推送。

关于第三方推送平台,极光推送,操作简单,稳定性高,送达率快

如何实现app消息推送

具体操作步骤如下:

1、首先打开手机设置,点击选择“应用管理”按钮。

2、然后在新的界面里点击选择一款实现消息推送的软件。

3、之后在新的界面里点击选择“通知管理”按钮。

4、然后在新的界面里点击选择“允许通知”右侧开关按钮将其开启即可。

如何进行app消息推送(push)?

消息推送(Push)就是通过服务器把内容主动发送到客户端的过程。运营人员通过自己的产品或第三方工具对用户移动设备进行主动消息推送。完成推送后,消息通知会展示在移动设备的锁定屏幕及通知栏上,用户点击通知即可去往相应页面。

现在流行的消息推送实现方式,主要为长链接方式实现。其原理是客户端主动和服务器建立TCP长链接,长链接建立之后,客户端定期向服务器发送心跳包用于保持链接,当有消息要发送的时候,服务器可以直接通过这个已经建立好的长链接,将消息发送到客户端。

个推作为国内移动推送领域的早期进入者,于2010年推出个推消息推送SDK产品,十余年来持续为移动开发者提供稳定、高效、智能的消息推送服务,成功服务了人民日报、新华社、CCTV、新浪微博等在内的数十万APP客户。个推消息推送,也是运用的长链接方式实现消息推送的,其长链接稳定性高、存活好,消息送达率高。开发者通过集成个推消息推送SDK,即可简单、快捷地实现Android和iOS平台的消息推送功能,有效提高产品活跃度、增加用户留存。

如果您对个推消息推送感兴趣,欢迎前往个推开发者中心免费注册体验。 

消息推送交互逻辑

怎么关掉app推送消息

可参考vivo手机的操作方式,进入手机设置--通知与状态栏--应用通知管理,找到对应软件,将“允许通知”关闭,即可取消软件通知。

APP消息推送(APP Push)解决方案-服务端工作逻辑和实现

App推送消息是我们常见的一种app消息提醒方式。

我们的实现需要第三方的支持,实现方式是后台通过接口将Push请求发送至第三方,第三方实现在App所在设备上的推送。

在与推送平台交互时,后台需要向第三方发送两部分信息,推送目标终端标示+推送内容

APP推送需要定位目标终端,也就是说要给那台设备进行推送,

简单的情况下,单设备推送,我们需要拿到一个终端ID的概念,用于定位目标设备,

注:不同渠道中使用的单设备ID方式也不尽相同,以下用TokenID来表示这个终端ID的概念。

而实际推送渠道中往往还有自定义的功能,比如通过打标签的方式将TokenID进行划分,达到批量差异化的效果。

即指通过API接口参数的定义终端上收到的Push消息的内容和格式。

其中IOS的推送消息在展示上区别于安卓的一点是没有title,title的部分只能是默认的APP名称,而安卓的部分虽然默认值也是APP名称,但是也支持自定义title。

通过上述的处理逻辑可得知,后端首先需要登记客户端的TokenId,然后保持TokenID的有效性更新,然后在需要发送APP推送时拿到用户的有效TokenID,

然后使用TokenID和已有的内容信息通过API与三方Push服务交互,完成推送。

即后端的实现分为两部分:

1、TokenID的登记

2、App Push API的调用

注:以下示例中有两个元素为本项目的特殊情况:

其中product_id是因为当前项目中客户端同时有多个版本,不同版本需要推送独立处理,但在同一张表内统一记登记;

而login_id跟member_id同时存在是因为当前系统中存在共享账户的情况,一般账号账户一对一的情况login_id和member_id是绑定的,不需要同时重复登记。

pre

/ ============================================================== /

/* Table: sys_app_push_token */

/ ============================================================== /

create table sys_app_push_token

(

record_id int(11) not null auto_increment,

login_id int(11),

member_id int(11),

push_token varchar(200),

visit_device int(4) comment '3:Android;4:IOS',

product_id varchar(20) default '0' comment '',

push_channel int(4) default 1 comment '1:IOS信鸽,2:华为,3:小米,4:极光',

nstatus int(4) not null default 0 comment '状态:0:申请中;1:生效;2:失效;3:删除;4:历史记录',

create_userid int(11) not null default 0,

create_time varchar(20) character set utf8 not null default "",

edit_userid int(11) not null default 0,

edit_time varchar(20) character set utf8 not null default "",

this_remark text,

description text,

create_ordernum varchar(30) character set utf8 comment '记录创建时的流水号',

last_ordernum varchar(30) character set utf8 comment '记录最后一次编辑时的流水号',

primary key (record_id)

)

ENGINE=InnoDB

DEFAULT CHARACTERSET=utf8

COLLATE=utf8_general_ci

auto_increment=10000

row_format=COMPACT;

alter table sys_app_push_token comment 'app推送token表';

/ ============================================================== /

/* Index: Index_1 */

/ ============================================================== /

create index Index_1 on sys_app_push_token

(

record_id

);

/pre

注:其中,推送渠道绝对在做Push时使用哪家API,参数的判定交由客户端进行处理,后端直接登记判定结果。

pre

@Transactional(readOnly=false)

publicbooleanuploadMemberPushTokenEnt(TrainVansContext trainVansContext) {

try{

//check already data

trainVansContext.getTrainVansRequest().put("login_id", TrainVansUtils.getMV(trainVansContext.getTrainVansRequest(),"login_login_id"));

// get All memberRelation

trainVansContext.getTrainVansRequest().put("relation_type", TrainVansUtils.getMV(trainVansContext.getTrainVansRequest(),"visit_role"));

List memberRelationList = SpringContextHandler.getBean(MemberService.class).getRelateMemberListByLoginId(trainVansContext);

for(Map memberRelateMap : memberRelationList){

//

trainVansContext.getTrainVansRequest().put("member_id", TrainVansUtils.getMV(memberRelateMap,"member_id"));

Map tokenMap = SpringContextHandler.getBean(AppPushService.class).getPushTokenMapByLoginMap(trainVansContext.getTrainVansRequest());

//disable already data

if(tokenMap !=null){

if(!TrainVansUtils.getMV(tokenMap,"push_token").equals(TrainVansUtils.getMV(trainVansContext.getTrainVansRequest(),"push_token"))){

//

trainVansContext.getTrainVansRequest().put("record_id", TrainVansUtils.getMV(tokenMap,"record_id"));

if(!SpringContextHandler.getBean(AppPushService.class).updateDiabledThePushToken(trainVansContext)){

thrownewRuntimeException("TranVans_Operate_Exception");

}

//insert new data

if(!SpringContextHandler.getBean(AppPushService.class).insertPushTokenRecord(trainVansContext)){

thrownewRuntimeException("TranVans_Operate_Exception");

}

}

}else{

//insert new data

if(!SpringContextHandler.getBean(AppPushService.class).insertPushTokenRecord(trainVansContext)){

thrownewRuntimeException("TranVans_Operate_Exception");

}

}

}

returntrue;

}catch(Exception e) {

TrainVansUtils.setRetInfo(trainVansContext,"10005001","Register TokenID Error");

e.printStackTrace();

thrownewRuntimeException("TranVans_Operate_Exception");

}

}

/pre

注:方法外部有一个关于对应本账号的对账户列表的遍历,遍历中的处理部分为TokenID的登记处理操作。

推送渠道:

APP推送不仅仅要求在APP打开状态时或者后台运行时进行消息推送,更多的场景是在移动终端关闭APP的场景下进行消息推送,

渠道的优劣无非在于两个维度,送达率和送达效率。

其中安卓推送的渠道较为杂乱,其中华为和小米提供的PUSH服务对于自平台的移动终端支持的较为完善,而没有厂商提供PUSH服务的终端只能通过

第三方服务来进行对接。

对于现有的这些渠道进行如下总结:

1、IOS:信鸽推送,这个推送在我门公司中经历了三个项目,推送效果稳定。API接入也方便,是IOS端的不二选择。

2、Android-华为:华为自平台。

3、Android-小米:小米自平台。

4、Android-其他:目前使用的是“极光推送”。在理想状态下送达率和送达效率表现很好,但并不如以上三家渠道稳定。

在进行调用时可根据之前定义的push_channel分发给各自的渠道,各渠道的具体对接请各自查看官网,API都很完善。

怎么关闭各种app推送的消息

苹果手机关闭软件推送消息的方法如下:

工具/原料:苹果iPhone13、iOS15.4、苹果设置软件

1、进入苹果设置页,打开“通知”界面。

2、在通知页中,打开要关闭推送的app页面。

3、在app通知设置中,取消点亮“允许通知”选项即可。

APP推送消息】的内容来源于互联网,如引用不当,请联系我们修改。

赞(0)
文章名称:《APP推送消息(uniapp推送消息)》
文章链接:https://www.fzvps.com/156296.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!