关于uniapp开发app的坑(有些可能是app开发都会遇到的)

在uni-app开发app时,可能会遇到以下一些常见的坑:

  1. 渲染问题:在某些情况下,uni-app可能会出现渲染问题,例如在页面滚动时可能会出现卡顿或闪烁的情况。这可能与uni-app的运行机制有关,因为uni-app是使用Web技术来开发原生应用的,所以它在渲染时需要将Web页面转换为原生页面,这个过程中可能会出现一些问题。
  2. 性能问题:由于uni-app需要同时支持多个平台,因此它在某些情况下可能会出现性能问题。例如,在处理大量数据或进行复杂的计算时,uni-app可能会出现卡顿或延迟的情况。
  3. 兼容性问题:由于uni-app需要适配不同的设备和应用商店,因此在某些情况下可能会出现兼容性问题。例如,在某些设备或应用商店中,uni-app可能会出现闪退或崩溃的情况。
  4. 更新问题:在开发过程中,如果需要对uni-app进行更新,可能会出现一些问题。例如,在更新后,之前的配置或代码可能会失效,导致应用无法正常运行。此外,如果更新需要重新提交审核,那么审核的时间可能会比较长,这也会对开发进度造成一定的影响。

为了避免这些问题,建议在开发过程中注意以下几点:

  1. 优化渲染性能:尽量减少页面的复杂度,避免使用过多的嵌套和动态样式,同时可以使用异步加载和分页技术来减轻渲染负担。
  2. 优化性能:尽量避免进行大量的计算和操作,可以使用缓存和异步处理来提高性能。
  3. 测试兼容性:在发布前需要进行充分的测试,确保uni-app在各种设备和应用商店中能够正常运行。
  4. 妥善处理更新:在更新时需要仔细检查更新内容,并备份原有的配置和代码,以防止更新出现问题。x

下面是具体开发中遇到的问题

⽬前为安卓版本
⾸先第三⽅授权登录(如微信登录)中的签名为app证书的md5,⽅法按照Dcloud官⽅⾛就完事,Java可以选择下载的,更快,⽤Oracle的贼⿇烦还要注册账户,然后就到了坑,再输⼊密码的时候会发现输⼊的内容不显⽰,⼀度怀疑⼈⽣,后来发现只是是隐藏了⽽已,为了安全…*
所有页⾯样式失效还是样式与⼩程序不符先想想这个页⾯有没有input,video,textarea这类使⽤了原⽣组件的组件,解决办法官⽅有,但看不懂,笨办法是使⽤v-if来隐藏,然后v-else写个假的放上⾯,⽤的时候显⽰真的,其他时候显⽰假的*
还有显⽰隐藏样式出问题想想有没有⽤v-show,换成v-if,还有什么属性不能为null的报错,对象最好初始化写成空{},⽽不是null*云端打包时,videoplayer项如果使⽤到video必须打钩,其他能⼒类似,还有uni-app Error: Cannot find module ‘node-ipc’ 把uni-app编译插件卸载重装,还有编译sdk与打包sdk版本不⼀样,但实际上hbuilderx已经是最新版也可以这样操作*
新浪开发的签名为证书md5去掉:并且字母全部⼩写,必须提供下载地址,下⾯是驳回理由
不能只⽤弹出⽅式提供下载,安卓客户端下载必须要有对应的下载页⾯和下载按钮。,应⽤地址处请填写客户端专⽤下载页⾯或在软件商店页⾯地址(⽹盘,论坛页⾯⽆效)
现在的各⼤市场上架app需要软件著作权证书,最好提前备好,应⽤宝上架需要隐私政策截图,所以现在软件的⽤户协议和隐私政策⼏乎必备
*分享这块⽬前完成了qq、微信、朋友圈分享,切记分享图⽚(视频)地址正确,不为空,不然会返回出神奇的错误信息(fail: {“errMsg”:“share:fail http://ask.dcloud.net.cn/article/287”}),新发现的问题:分享时图⽚过⼤会分享失败,新浪分享需要回调地址,⿇烦,抖⾳对图⽚视频分辨率有限制,坑货
⽀付功能⼏乎全是后端的活,前端⼀个uni.requestPayment就⾏,官⽅有php的demo
⽀付宝⽀付时出现路ALIN10146错误,原因是应⽤未上架(指的是阿⾥开放平台那申请的应⽤),阿⾥的查错⽂档挺详细了
登录部分,微信登录uni.login可以直接得到后端请求所需token,直接拿来⽤就⾏,不必code换token这么复杂,dcloud⽜逼,其他的第三⽅登录没有做
对于有些可能是app需要⼩程序不需要的页⾯(或者相反),采⽤官⽅⽂档的条件编译是极佳的选择
整体⽬录条件编译
如果想把各平台的页⾯⽂件更彻底的分开,也可以在uni-app项⽬根⽬录创建platforms⽬录,然后在下⾯进⼀步创建app-plus、mp-weixin等⼦⽬录,存放不同平台的⽂件。
对于第三⽅功能,最好做下判断,如果没有此应⽤跳转到下载地址
// 判断⽤户是否安装抖⾳
export function checkDouyin(instal){
if(plus.runtime.isApplicationExist({
pname:'com.ss.android.ugc.aweme',
action:'wb1462309810://'
})){
if(instal){
instal()
}
console.log("抖⾳应⽤已安装");
}else{
// uninstal()
plus.runtime.openURL('https://www.douyin.com/');
console.log("抖⾳应⽤未安装");
}
}
// 判断⽤户是否安装⽀付宝
export function checkAlipay(instal){
if(plus.runtime.isApplicationExist({
pname:'com.eg.android.AlipayGphone',
action:'alipay://'
})){
if(instal){
instal()
}
console.log("⽀付宝应⽤已安装");
}else{
// uninstal()
console.log("⽀付宝应⽤未安装");
plus.runtime.openURL('https://d.alipay.com/?nojump=true');
}
}
// 判断⽤户是否安装QQ
export function checkQQ(instal){
if(plus.runtime.isApplicationExist({
pname:'com.tencent.mobileqq',
action:'mqq://'
})){
if(instal){
instal()
}
console.log("QQ应⽤已安装");
}else{
// uninstal()
console.log("QQ应⽤未安装");
plus.runtime.openURL('https://im.qq.com/mobileqq/touch/android/'); }
}
// 判断⽤户是否安装新浪微博
export function checkSinaweibo(instal){
if(plus.runtime.isApplicationExist({
pname:'com.sina.weibo',
action:'sinaweibo://'
})){
if(instal){
instal()
}
console.log("新浪微博应⽤已安装");
}else{
// uninstal()
plus.runtime.openURL('https://c.weibo.cn/');
console.log("新浪微博应⽤未安装");
}
}
// 判断⽤户是否安装微信,传⼊判断函数
export function checkWeixin(instal){
if(plus.runtime.isApplicationExist({
pname:'com.tencent.mm',
action:'weixin://'
})){
if(instal){
if(instal){
instal()
}
console.log("微信应⽤已安装");
}else{
// uninstal()
//
plus.runtime.openURL('https://weixin.qq.com/d ');
console.log("微信应⽤未安装");
}
}
如果给uni.showToast不加title的话,会显⽰成⼀个⼩⿊点
uni.getSystemInfoSync()最好在onReady中获取,不然某些⼿机会获取出问题
然后功能差不多了,等软著上架…修bug…
关于webview⽅⾯,app的webview布局采⽤flex布局,千万不要⽤浮动
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zz_ll9023one

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值