ios apns推送 离线锁屏语音播报

这篇具有很好参考价值的文章主要介绍了ios apns推送 离线锁屏语音播报。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原文地址:https://zhanglei.blog.csdn.net/article/details/130316253

一、背景

公司正在研发的一款App,需要在进行消息推送时支持语音播报。 具体要求:

  • 离线:App在用户未打开时,可收到消息推送
  • 锁屏:用户在设备锁屏状态下,仍可收到消息推送
  • 语音播报:收到消息推送时可同时进行语音播放

苹果的APNs消息推送, 支持在应用未打开及设备锁屏状态下收到推送。 而同时进行语音播报,则需要做一些特殊处理。 目前语音播报的场景有两种: 一种是固定音频的播放, 一种是需要动态合成后的音频播放。如支付宝或微信收款的消息提醒: “支付宝/微信成功收款100元” 。 基于以上两种场景,接下来会逐一分析。在分析之前,需要先对APNs做一个简单的了解。

二、认识APNs

APNs(英文全称:Apple Push Notification service),中文翻译为:苹果推送通知服务。

通知是由两个主要部分组成的数据:设备令牌deviceTokenpayload消息。

  • 设备令牌deviceToken: 是类似于一个电话号码。它包含的信息,使的APN定位到设备上安装的客户端应用程序。APN还用它来验证通知的路由。
  • payload消息:是一个JSON定义的属性列表中指定的设备上的应用程序的用户将被提醒。

2.1 工作步骤

  • 首先,APNs会对用户进行物理连接认证,和设备令牌认证(简言之就是苹果的服务器检查设备里的证书以确定其为苹果设备);
  • 然后,将服务器的信息接收并且保存在APNs当中,APNs从其中注册的列表中查找该IOS设备并将信息发送到该设备;
  • 最后,设备接收到数据信息给相应的APP,并按照设定弹出Push信息。

参考如下顺序图,会更易理解:
ios apns推送 离线锁屏语音播报

2.2 payload 消息JSON结构

{
    "aps" : {
        "alert" : {
            "title" : "Game Request", // 标题
            "body" : "Bob wants to play poker", //内容
        },
        "badge" : 5, //角标
        "sound" : "binggo.caf", //声音
        "content-available" : 1,
        "mutable-content" : 1, //可变内容
    },
}

注意: payload 最大不能超过256字节

aps字典包含苹果用来向用户设备发送通知的keyskey指定了您希望系统在提醒用户时使用的交互类型
下表列出了包含在该字典中的keys以及每个key的信息类型。注意:非苹果给定的key会被忽略。

值的类型 描述
alert Dictionary or String 当您希望系统显示标准警报或横幅时,请包含此键。用户设备上应用程序的通知设置决定是否显示警报或横幅。该key的首选值是字典 。字典的更多关键字请参阅 Table 9-2。 如果指定字符串作为该键的值,则该字符串将显示为警报或横幅的消息文本。
badge Number 当您希望系统修改应用程序图标的角标时,请包含此键。如果字典中没有包含此键,则Badge角标不会更改。若要删除角标,请将此键的值设置为0
sound String 当您希望系统播放声音时,请包含此键。此键的值是应用程序main bundle 或应用程序数据容器的Library/Sounds文件夹中声音文件的名称。如果找不到声音文件,或者为该值指定了default,系统将播放默认警报声音。有关为通知提供声音文件的详细信息;请参阅自定义警报声音。
content-available Number 设置此键的值为1,以配置后台更新通知。当此key存在时,系统会在后台唤醒您的应用程序,并将通知发送给其应用程序代理。有关配置和处理后台更新通知的信息,请参阅配置后台更新通知。
category String 为该键提供一个表示通知类型的字符串值。此值对应于应用程序的某个注册类别的identifier属性中的值。要了解有关使用自定义操作的更多信息,请参阅配置类别和可操作通知。

三、固定语音的推送方案

四、合成语音的推送方案

4.1 Notification Service Extension 通知服务扩展 介绍

4.2 Notification Service Extension项目中的使用

4.3 iOS12之前的方案

4.4 iOS12之后的方案

更多内容详见:https://blog.csdn.net/zhanglei5415/article/details/130316253文章来源地址https://www.toymoban.com/news/detail-424816.html

到了这里,关于ios apns推送 离线锁屏语音播报的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • h5开发语音播报功能

    一、使用window自带的api,但是手机浏览器多数不支持,兼容性差(不推荐) 1.使用到了window的speechSynthesis属性,如下如1.1                                                                         图1.1  2.主要用到了播报方法speak()和取消播报

    2024年02月14日
    浏览(38)
  • Android文字转语音播报

    Android文字转语音播报可以通过Android自带TTS和第三方语音框架实现。 代码如下(示例): 代码如下(示例): 1.包名、应用名: com.svox.pico 系统自带不支持中文语音 com.baidu.duersdk.opensdk 度秘语音引擎3.0 不支持5.0以下系统,大小11.95M com.google.android.tts 谷歌文字转语音引擎,不

    2023年04月08日
    浏览(27)
  • uniapp 语音文本播报功能

    最近uniapp项目上遇到一个需求 就是在接口调用成功的时候加上语音播报 , ‘创建成功’ ‘开始成功’ ‘结束成功’ 之类的。 因为是固定的文本 ,所以我先利用工具生成了 文本语音mp3文件,放入项目中,直接用就好了。 这里用到的工具: 知意配音 链接地址:https://peiy

    2024年02月15日
    浏览(35)
  • 简述Android语音播报TTS

    ✍️作者简介:小北编程(专注于HarmonyOS、Android、Java、Web、TCP/IP等技术方向) 🐳博客主页:开源中国、稀土掘金、51cto博客、博客园、知乎、简书、慕课网、CSDN 🔔如果文章对您有一定的帮助请👉关注✨、点赞👍、收藏📂、评论💬。 🔥如需转载请参考【转载须知】 在现

    2024年04月22日
    浏览(29)
  • uni-app/vue 文字转语音朗读(附小程序语音识别和朗读)uniapp小程序使用文字转语音播报类似支付宝收款播报小程序语音识别和朗读)

    uni-app/vue 文字转语音朗读(小程序语音识别和朗读) 一、第一种方式:直接加语音包 固定的文本 先利用工具生成了 文本语音mp3文件,放入项目中,直接用就好了 这里用到的工具:知意配音 链接地址:https://peiyin.wozhiyi.com/newproduction.html 接下来,代码部分。 在min.js文件里加

    2024年02月07日
    浏览(38)
  • STM32+JR6001语音播报

      文章目录 前言 一、JR6001怎么用? 二、使用步骤 1.合成语音 2.STM32代码 总结   最近在做一个利用STM32最小系统实现语音播报的小项目,加入到智能家居远程控制系统中,用来提示上位机对应操作的播报,于是就选择了JR6001作为语音播报模块,接下来就是学习过程。 提示:

    2024年02月06日
    浏览(138)
  • (vue)vue项目实现语音播报

    解决参考1: 在 Vue 项目中,你可以使用 Web Speech API 中的 SpeechSynthesis 接口来实现文本内容的自动朗读。下面是一个示例: 1.在 Vue 组件的模板中添加一个按钮,用于触发朗读: 2.在 Vue 组件的方法中实现朗读功能: 学习参考2:https://www.yzktw.com.cn/post/1266165.html

    2024年02月15日
    浏览(31)
  • 基于STM32 + SYN6288语音播报

    完整代码下载 https://download.csdn.net/download/zhouml_msn/85592868 1:5V供电 ,功耗约120mA (带图中小喇叭); 2:最少接3根线:5V,  GND,  RXD,TXD-可不接,BY-可不接 3:两种音源输出接口,排针、标准3.5mm接口,接小喇叭和普通音箱都无压力。 4:每次最多可转换200字节文本; 1:串口配置波

    2024年02月13日
    浏览(29)
  • Android 9.0 设置讯飞语音引擎为默认tts语音播报引擎

    在9.0的系统rom定制化开发中,在产品开发中,一些内置的app需要用到tts语音播报功能,所以需要用到讯飞语音引擎作为默认的系统tts语音引擎功能,所以就需要 了解系统关于tts语音引擎默认的设置方法,然后在设置讯飞语音引擎为默认的tts语音引擎来实现tts语音播报功能的实

    2024年02月07日
    浏览(62)
  • Qt完成文本转换为语音播报与保存(系统内置语音引擎)(一)

    在当今数字化社会,人们对于交互式应用程序的需求越来越高。除了传统的图形用户界面,语音交互也成为了一种流行的交互方式。在这种情况下,将文本转换为语音成为了一项重要的技术,它可以为用户提供更加人性化和便捷的交互方式。在此背景下,Qt提供了QTextToSpeech类

    2024年02月15日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包