检藏
检藏
  • 发布:2023-06-27 01:04
  • 更新:2023-06-27 19:28
  • 阅读:94

【报Bug】在生命周期钩子的组合式 API onLaunch 中调用 uni.getPushClientId() 报错init am error: no api impl found

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: Alpha

HBuilderX版本号: 3.8.6

手机系统: Android

手机系统版本号: Android 12

手机厂商: 鼎桥

手机机型: TDT-MA01

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
复制代码<script setup>  
    import {  
        onLoad,  
        onShow,  
        onLaunch,  
        onHide  
    } from "@dcloudio/uni-app";  

    // uni-id的云对象  
    const uniIdCo = uniCloud.importObject("uni-id-co", {  
        customUI: true  
    })  

    onLaunch(async () => {  
        if (uni.getPushClientId) {  
            console.log('设置pushID');  
            try {  

                let rt = await uni.getPushClientId()  
                let pushClientId = rt.cid  
                console.log(pushClientId);  
                let res = await uniIdCo.setPushCid({  
                    pushClientId  
                })  
                console.log(res, '设置res');  
            } catch (e) {  
                console.log(e, '错误');  
                //TODO handle the exception  
            }  
        }  

    });  

    onShow(() => {  
        console.log("B 页面 onShow");  
    });  
</script>  

<style>  
    /*每个页面公共css */  
</style>

操作步骤:

在生命周期钩子的组合式 API onLaunch 中调用 uni.getPushClientId() 就会复现bug

预期结果:

预期setPushCid 设置成功

实际结果:

报错
00:59:15.194 [GtPush]
00:59:15.233 init am error: no api impl found
Error: init am error: no api impl found
at w3 (app-service.js:17548:21)
at Object._2 [as getStorage] (app-service.js:17558:15)
at Object.s3 [as getSync] (app-service.js:17832:33)
at Function.init (app-service.js:18337:42)
at Function.init (app-service.js:18291:26)
at Object.r4 [as init] (app-service.js:17460:26)
at app-service.js:23293:12
at app-service.js:23374:3
00:59:15.251 [Object] {"errMsg":"getPushClientId:fail init am error: no api impl found"} , 错误 at App.vue:23

bug描述:

在生命周期钩子的组合式 API onLaunch 中调用 uni.getPushClientId()
报错
00:59:15.194 [GtPush]
00:59:15.233 init am error: no api impl found
Error: init am error: no api impl found
at w3 (app-service.js:17548:21)
at Object._2 [as getStorage] (app-service.js:17558:15)
at Object.s3 [as getSync] (app-service.js:17832:33)
at Function.init (app-service.js:18337:42)
at Function.init (app-service.js:18291:26)
at Object.r4 [as init] (app-service.js:17460:26)
at app-service.js:23293:12
at app-service.js:23374:3
00:59:15.251 [Object] {"errMsg":"getPushClientId:fail init am error: no api impl found"} , 错误 at App.vue:23

2023-06-27 01:04 负责人:无 分享
已邀请:
DCloud_uniCloud_JSON

DCloud_uniCloud_JSON

仅启用在线推送而不启用离线推送时,调用 uni.getPushClientId 会报getPushClientId:fail init am error: no api impl found的问题已确认,会在下一个版本的 HBuilderX 修复此问题;
感谢反馈,已给你的社区账号加分。

要回复问题请先登录注册

  • 标题 / 粗斜体
  • 代码片段
  • 超链接 / 图片 / 视频
  • 列表 / 引用

文章内容较多时,可以用标题分段 :

## 大标题 
### 小标题

斜体 / 粗体 :

**粗体** 
*斜体*
***粗斜体***

代码片段 :

``` javascript
代码片段
```

超链接 :

[链接文字](链接地址) 例: [百度](http://www.baidu.com)

图片 :

![图片说明](图片地址) 例: ![百度logo](http://www.baidu.com/img/bdlogo.gif)

视频 :

!![视频说明](视频地址) 例: !![优酷视频](http://youku.com)

有序列表 :

1. 123
2. 123
3. 123

无序列表 :

- 123
- 123
- 123

引用 : ( 双回车后结束引用 )

> 引用内容
引用内容
引用内容