uniapp手机端一些坑记录
-
关于 z-paging-x 组件,在ios上有时候通过弹窗去粗发它reload时会触发闪退,可能是弹框插入进去导致的DOM 元素已经被移除或者不可用,解决办法是加上他自带属性
:showRefresherWhenReload="true"
加上showRefresherWhenReload
属性用于控制当触发重新加载时是否显示下拉刷新控件,默认为“否”。 -
关于适配ios,安卓,或者web,h5端:
ios适配:
js中用 // #ifdef 和 // #endif
html中用 <!-- #ifdef APP-IOS --> 和 <!-- #endif -->
注意:js中前面的//号 和 html中<!-- -->是不能省掉的
如: 给ios的适配代码,在script中是:const onClick = (index: number) => {switch (index) {case 0:showLoading({ title: '下载中...' } as XLOADINGS_TYPE)// #ifdef APP-IOSdownloadFile({// #endif...}) }
在html中是:
<CommonForm <!-- #ifdef APP-ANDROID -->v-model="(formModel[index] as UTSJSONObject)"<!-- #endif --><!-- #ifdef APP-IOS -->v-model="formModel[index]"<!-- #endif -->:canScroll="false" :formItemList="fileInfo" @onSubmit="onSubmit"></CommonForm>
-
适配安卓在html中是<!-- #ifdef APP-ANDROID --> 和 <!-- #endif -->
-
适配web,html用 <!-- #ifdef WEB --> 和 <!-- #endif -->
js用 // #ifdef WEB 和 // #endif -
H5同上
-
关于适配web端后的路由跳转uni.navigateTo问题
有时候直接跳转会有白天或者传递数据缺失问题,前面改成异步
// #ifdef WEBsetTimeout(() => {uni.navigateTo({url: `/pages/commonPages/adviceplan/${plan.id}?applSeq=${adviceplanItem.value['applSeq']}&pageKey=preManage`,})}, 500)// #endif