uni-app xcode 制作iOS Notification Service Extension 远程推送图文原生插件

由于uni-app不支持iOS 的Notification Service Extension推送类型,所以只能自己做推送的图文插件,对原来的只有文本的推送消息不影响

uni-app 官方文档:

https://nativesupport.dcloud.net.cn/NativePlugin/course/package.html

相关参考文档:

https://ask.dcloud.net.cn/question/210119

在xcode中制作Notification Service Extension

https://help.aliyun.com/document_detail/434703.html?spm=5176.product30047.6.159.afmd1u

NotificationService描述文件创建教程

http://www.qianfanyun.com/help/475

1、新建一个空项目,在空项目中创建.a 静态插件库,在空项目中创建Notification Service Extension tag

2、实现Notification Service Extension 内容逻辑,我参考的阿里demohttps://github.com/aliyun/alicloud-ios-demo/blob/master/mpush_ios_demo/mpush_service_extension/NotificationService.m

3、主项目XCode环境中archive以后,找到ipa,将ipa解压后在Payload/XXX.app/PlugIns/ 下可以找到.appex文件 将.appex添加到uni原生插件下的 ios/Plugins/ 目录中即可,这个.appex文件就是Notification Service Extension tag 扩展文件

4、按照官方教程,在nativeplugins目录下配置自定义的uni-app插件内容,测试的时候hbuilderx中自定义iOS基座

*遇到的一些问题:

1、主项目的bundle id不能和Notification Service Extension的bundle id一样,不然uni-app 制作完插件以后,云打包会报错编译不通过

https://www.jianshu.com/p/f5abaa2dd715

2、Notification Service Extension的bundle id必须和主项目的bundle id前面标识一样,比如主项目的bundle id是:com.aa.look ,Notification Service Extension的bundle id就必须是:com.aa.look.pushservice ,'pushservice'一般是Notification Service Extension创建的tag名称

3、证书一定要配置对,不然云打包会报很多合并的错误

*推送的内容格式一般是如下格式:

复制代码
// 远程推送图文多媒体格式消息,attachment是图片路径
{
  "aps": {
    "alert": {
      "title": "通知标题",
      "subtitle": "通知副标题",
      "body": "通知的主要内容"
    },
    "url-args":['/pages/AIImage/AIImage'],
    "sound": "default",
    "badge": 1,
    "mutable-content": 1
  },
  "attachment": "https://img2.baidu.com/it/u=11915139,601311520&fm=253&app=120&f=JPEG?w=800&h=800"
}

*最终效果:

相关推荐
Digitally21 分钟前
5 种简易方法:摩托罗拉手机数据迁移至 iPhone 17
ios·智能手机·iphone
国服第二切图仔3 小时前
HarmonyOS APP《画伴梦工厂》开发第31篇-语音识别实战——SpeechRecognitionEngine+AudioCapturer
语音识别·xcode·harmonyos
EricStone2 天前
VibeCoding工程流程学习二:iOS项目架构
ios·vibecoding
小徐_23333 天前
Wot UI 2.2.0 发布:Button 新增 subtle,VideoPreview 预览体验继续增强
前端·微信小程序·uni-app
宸翰4 天前
解决 uni-app App 端 vue-i18n 占位符丢失:封装跨端可用的 tf 格式化方法
前端·vue.js·uni-app
天桥吴彦祖4 天前
判断iOS如何监听手机屏幕是否锁屏
ios
敲代码的鱼5 天前
PDF 预览与签名批注写回 支持安卓 iOS 鸿蒙 UTS插件
android·前端·ios
时光足迹5 天前
uni-app 视频通话实战:康复师与患者视频问诊的 6 个致命 Bug 与解决方案
android·ios·uni-app
时光足迹5 天前
腾讯云 TRTC UniApp SDK 从入门到上线
前端·vue.js·uni-app
时光足迹5 天前
uni-app 里把加密视频嵌入页面播放?我分析了 4 种方案,只有 1 种接近完美
前端·vue.js·uni-app