JackJiang
JackJiang
  • 发布:2023-05-04 18:08
  • 更新:2024-07-04 16:16
  • 阅读:1445

【报Bug】生成的支付宝小程序无法支持uniapp的WebSocket代码,报“Cannot read properties of undefined (reading 'onOpen')”

分类:uni-app

产品分类: uniapp/小程序/阿里

PC开发环境操作系统: Mac

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

HBuilderX类型: 正式

HBuilderX版本号: 3.7.10

第三方开发者工具版本号: 3.6.4

基础库版本号: 2.8.8

项目创建方式: HBuilderX

示例代码:

  /**  
   * 尝试发起连接并获取WebSocket。  
   *  
   * @return boolean  
   */  
  tryConnectToHost() {  
    console.info("tryConnectToHost并获取connection开始了...");  

    var done = false;  
    var that = this;  

    try {  
      this.localSocket = uni.connectSocket({  
        url: 'ws://xxxxxxxxxxxxxxxxxxxxxxxxxxxx.com:3000/websocket',  
        header: {'content-type': 'text/xml'},//'application/json'},  
        success: (res) => {  
          console.info("WS.connectSocket - success (res=" + JSON.stringify(res) + ")!");  
        },  
        fail: (err) => {  
          console.info("WS.connectSocket - fail (err=" + err + ")!");  
        }  
      })  

      this.localSocket.onOpen((res) => {  
        if (uni.MBCore.debugEnabled()) {  
          console.info("WS.onopen - 连接已成功建立!");  
        }  
      })  

      //## WebSocket连接关闭时的回调处理

操作步骤:

直接用我的示例代码,进行websocket连接,在生成的支付宝程序中执行,就会报错。

预期结果:

正常建立WebSocket连接,不应报“TypeError: Cannot read property 'onOpen' of undefined”错误。

实际结果:

生成的支付宝小程序,运行就报“Cannot read properties of undefined (reading 'onOpen')”错误!

bug描述:

基于uniapp的WebSocket API编写的IM程序,在Android真机、iOS真机、iOS模拟器、hbuiderX内置浏览器、Chrome浏览器、微信小程序中都能正常运行,但生成的支付宝小程序在支付宝小程序开发工具的模拟器和真机中运行时,均报“TypeError: Cannot read property 'onOpen' of undefined”错误!无法完成网络连接!

注:附件图片是在支付宝小程序开发工具中的报错信息。

2023-05-04 18:08 负责人:无 分享
已邀请:
JackJiang

JackJiang (作者) - 我是Jack Jiang,我为自已代言

示例代码片段在上面的内容中无法贴完整,我用一个文本文件的方式上传到附件中,请查看。

2***@qq.com

2***@qq.com - 在线典当

解决了吗

要回复问题请先登录注册