1***@qq.com
1***@qq.com
  • 发布:2022-05-18 09:42
  • 更新:2022-08-10 19:14
  • 阅读:742

开发一个完整的聊天App,遇到的坑!

分类:uni-app

使用vue 开发了一个聊天App
功能点

1. 阿里云推送
阿里云移动推送插件 https://ext.dcloud.net.cn/plugin?id=7628
阿里云厂商通道插件 https://ext.dcloud.net.cn/plugin?id=7629

注意点:a. app未上架,只有小米和华为可以推送!并且开发环境下不能推,需要云打包
b. 正确填写证书和包名,并且与阿里云配置相同的包名
c. 在manifest中填写Appkey等配置
d. app模块配置中 勾选Push
e. 华为手机中,有时候黑屏收不到消息,因为黑屏有时候走的是离线推送的通道!
f. 在线推送 使用plus.push.createMessage 创建推送 plus.push.addEventListener('click',func) 监听通知点击事件,然后获取到具体参数 跳转不同页面

2. 在线热更新,整包更新

注意点
a. 热更新使用编辑器打出wgt包 上传到服务端 客户端请求接口获取到url后 使用 uni.downloadFile 下载 再使用 uni.saveFile保存 最后调用
plus.runtime.install(packagePath, { force: true }, installSuccess, installError) install 只能用于热更新!!!!
使用install 安装完包 一定不要用 quit 和 restart 方法退出或重启! 如果使用了第三方插件,quit可能不会杀死后台应用!导致更新包异常,我这里就出现了
createMessage 通知 或者通知点击失效的问题,后面改为让用户手动退出应用
b.整包更新 使用 一定要写第三个参数! 不然小米有的机型会报错!!!!解析失败 或者打不
开浏览器

 plus.runtime.openURL(url,()=>{    
// 兼容小米手机  
plus.runtime.openURL( url,(e) => { },'com.android.browser')    
  })   

3. 登录鉴权
用户打开app 需要判断用户是否登录,我这里在App.vue中引入了 authorization mixins
注意点:
启动图一定要设置为手动关闭模式! 具体设置在全局的app-plus -> splashscreen ->

"splashscreen" : {
"alwaysShowBeforeRender" : false,
"waiting" : false,
"autoclose" : false,
"delay" : 0
},

export default {  
  mixins: [authorization],  
  onLaunch: () => {},  
  methods: {},  
}

authorization

export default {  
  onLaunch() {  
   //判断是否登录  
    this.GET_USER_INFO()  
      .then(() => {  
        // 成功跳转首页  
        uni  
          .switchTab({  
            url: '/pages/home/index',  
          })  
          .then(() => {  
            this.closeSplashscreen()  
          })  
      })  
      .catch(() => {  
        //跳转登录页面  
        logout().then(() => this.closeSplashscreen())  
      })  
  },  
  methods: {  
    ...mapActions('user', ['GET_USER_INFO']),  
    //关闭启动图  
    closeSplashscreen() {  
      // #ifdef APP-PLUS  
      plus.navigator.closeSplashscreen()  
      // #endif  
    },  
  },  
}

4.debug工具,在线上环境经常需要debug 看日志
https://ext.dcloud.net.cn/plugin?id=7183

5..9png自适应启动图
安卓一定所有的分辨率设置不同分辨率的.9png,也就是要有 1080 720 480的.9 不然不生效!

1 关注 分享
BoredApe

要回复文章请先登录注册

1***@qq.com

1***@qq.com (作者)

回复 1***@qq.com :
打包报错 是不是插件没有引入 开发环境是否正常 贴一下错误日志看看
2022-08-10 19:14
1***@qq.com

1***@qq.com

哎 我是用阿里云推送插件打包都报错,都是按照文档配置的
2022-08-05 08:57