2024/8/1 14:39:28 浏览:1020
我们在日常使用手机的时候,只要安装了某个app,就会在任意某个时刻收到这个app的推送,例如使用今日头条,不管你是否登录,都会收到不同形式的新闻,显示在手机屏幕顶部,那么在app开发的实际环境中,是如何实现这个功能的呢,今天就来跟大家分享一下。首先我们要知道所有app的推送新闻的信息都是以图文形式展示在屏幕顶部,都要用到notification通知这个概念,而当我们创建好notification的管理对象notificationmanager,调用builder.build()方法创建好新的notification,却发现通知栏无法显示在屏幕上,原因是什么呢?这是因为有可能我们的app并没有自动打开通知栏开关,我们要先判断通知开关是否打开,调用notificationmanagerarenotificationsenabled方法,如果根据返回的值得知没有打开通知栏权限,我们要帮助用户跳转到系统通知管理页面,然后在app 的通知页面,提示用户手动打开app通知开关,接下来我们要创建通知的渠道channel,因为高等级系统的手机,是要强制我们为app的通知做出渠道以区分不同类型的通知,这里调用通知管理对象notificationmanager的createnotificationchannel,同时将渠道需要的id,名称name和等级传入,注意我们可以创建多个渠道,且创建好的渠道不能修改,得到了渠道的id,将这个id代入到notificationcompat.builder的setchannelid方法中,有了id我们还需要指明通知的标题、内容和图标,分别调用了setcontenttitle,setcontenttext和setsmallicon方法,如果我们需要用户点击通知时自动跳转到对应的app页面,还需要设置意图setcontentintent,设置了以上的基础参数后,最后调用通知管理notificationmanager的notify方法,这时我们就可以在手机屏幕顶部看到我们想要的通知栏效果了。有了通知栏后,还需要去对应的手机厂商的(小米、华为)或第三方推送(友盟、极光)开发者凯时app官方首页官网新建账号,申请对应app的推送权限,按照厂商提供的app开发推送文档,集成好sdk包,调用厂商提供的推送api,同时可以在开发者后台测试推送结果自此app开发手机推送这个功能我们是初步实现了。