aisibi
aisibi
  • 发布:2024-01-09 10:49
  • 更新:2024-01-09 11:28
  • 阅读:138

【报Bug】离线打包 iOS 推送问题

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 14.2.1

HBuilderX类型: Alpha

HBuilderX版本号: 3.99

手机系统: iOS

手机系统版本号: iOS 17

手机厂商: 苹果

手机机型: 12

页面类型: vue

vue版本: vue3

打包方式: 离线

项目创建方式: HBuilderX

示例代码:

setTimeout(function(){
console.log(" ==================== ")
let obj = plus.push.getClientInfo();
let cli = obj.clientid;
console.log(" getClientInfo =====> ", obj)
console.log(" getClientInfo =====> ", cli)

                         //上方均只能拿到token 不管 push 版本1 还是2  

                        // 下方只能通过 push 2版本 才能拿到cid 1版本走fail   

            uni.getPushClientId({  
                success: (res) => {  
                    console.log(" getClientInfo getPushClientId =====> ", res)  
                    let push_clientid = res.cid  
                    getApp().globalData.iosclientid = res.cid;  
                    console.log(' getClientInfo getPushClientId:', push_clientid)  
                },  
                fail(err) {  
                    console.log(err)  
                }  
            })  
            // uni-app客户端获取push客户端标记,代码可以实现在App.vue中  
            console.log(" ==================== ")  
        },2000)

操作步骤:

none

预期结果:

plus.push.getClientInfo();能拿到clientid

实际结果:

plus.push.getClientInfo(); 只能拿到token

bug描述:

manifest 修改 push 推送为 1
只能获取到token = plus.push.getClientInfo()
走了fail 报错 = uni.getPushClientId({
success: (res) => {

                },  
                fail(err) {  
                    console.log(err)  
                }  
            })  

manifest 修改 push 推送为 2
只能获取到token = plus.push.getClientInfo()
能拿到cid = uni.getPushClientId({
success: (res) => {

                },  
                fail(err) {  
                    console.log(err)  
                }  
            })  

因为我是 使用的老版本 unipush1.0 所以拿到的cid 我无法给自己推送
但是拿到的token 我能通过 token (deviceToken) 推送成功
证书是没问题的 现状有点蒙蔽

2024-01-09 10:49 负责人:无 分享
已邀请:
aisibi

aisibi (作者) - cs

如果 unipush2.0 fail 错误信息: {"errMsg":"getPushClientId:fail -1: no push platform,https://ask.dcloud.net.cn/article/282"}

不管是 1.0 2.0 plus.push.getClientInfo() 都能拿到token :
---COMMA------BEGIN:JSON---{"token":"4d1c8d557f41b12c63ea46f6befcf1972fabd1dca9bac14cb62495aa319987cb"}---END:JSON

aisibi

aisibi (作者) - cs

我现在是想 unipush 1.0 拿到 cid

aisibi

aisibi (作者) - cs

这个也 nil

DCloud_iOS_WZT

DCloud_iOS_WZT

看下底部注意事项 https://nativesupport.dcloud.net.cn/AppDocs/usemodule/iOSModuleConfig/push.html#%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E6%8E%92%E6%9F%A5%E6%AD%A5%E9%AA%A4

  • aisibi (作者)

    按照文档一样弄的

    2024-01-09 11:48

  • aisibi (作者)

    主要是我是 unipush 1.0 我这个拿不到 cid 改成2.0能拿到cid 但是 服务端api注册别名的时候 提示我 target user is invalid 20001

    2024-01-09 11:51

  • DCloud_iOS_WZT

    回复 aisibi: uni.getPushClientId 只支持2.0 1.0拿不到排查下你是不是配的2.0的 appkey了

    2024-01-09 11:59

  • DCloud_iOS_WZT

    回复 aisibi: no push platform 可能是 你feature.plist 配的不对 依赖库没加全

    2024-01-09 12:01

  • aisibi (作者)

    回复 DCloud_iOS_WZT: 没有 key 配置是确认对的 。 依赖也是对的

    2024-01-09 14:14

  • aisibi (作者)

    回复 DCloud_iOS_WZT: 因为我安卓用的是同一个key 安卓都可以 拿到cid

    2024-01-09 14:14

  • DCloud_iOS_WZT

    回复 aisibi: capability加了么?

    2024-01-09 14:55

  • DCloud_iOS_WZT

    回复 aisibi: 按照文档一定是能获取到cid的 过往获取不到的都是跟文档配置有差异 没有例外

    2024-01-09 14:59

  • aisibi (作者)

    回复 DCloud_iOS_WZT: 加了的 包括UserNotifications.framework 需要设置为Optional ** 也配置了的

    2024-01-09 14:59

  • aisibi (作者)

    回复 DCloud_iOS_WZT: 方便留个联系方式不? 我确信按着文档走的。 我断点GeTuiSdk.status 返回打状态也是 SdkStatusStoped

    2024-01-09 15:01

  • DCloud_iOS_WZT

    回复 aisibi: 私信你了

    2024-01-09 15:08

DCloud_iOS_WZT

DCloud_iOS_WZT

已经在你原帖回复你了 不要发重复的帖子

要回复问题请先登录注册