uniapp踩坑指南之坑多到写不完

1、sticky:到达指定位置时,就停留在那里不动了。当发现可以走时,立马就走了。
如果走不了就不会动了,就会一直在那里。
https://www.cnblogs.com/byeyear/p/11999334.html
设置了sticky定位的元素相对于第一个定位不为static的父级元素的位置,sticky的作用区域也是在该父级元素的内。也就是说粘性布局的效果只在该父元素内表现出来。
使用条件:
1、父元素不能overflow:hidden或者overflow:auto属性。
2、必须指定top、bottom、left、right4个值之一,否则只会处于相对定位
3、父元素的高度不能低于sticky元素的高度
4、sticky元素仅在其父元素内生效

2、uniapp的image标签的url为网络图片时,svg后缀的图片不显示,其他后缀的图片显示。

3、微信小程序和企业微信小程序打开的不是同一个。

微信小程序:
(1) 没有杀掉小程序进程时,右上角收缩:启动的地方再次点击进来会有缓存,保持你刚刚使用的界面。
应用池点进来有缓存。
(2) 杀掉小程序进程:会重新启动进onLoad。

企业微信小程序:
(1)没有杀掉小程序进程时,右上角收缩:启动的地方再次点击进来不会有缓存,直接进入你设置的首页的onShow,不会走onLoad。
应用池点进来有缓存。
(2)杀掉小程序进程:会重新启动进onLoad。

微信和企业微信不共用同一个token缓存池。

4、uniapp小程序渲染大数据时:
(1)、一次性渲染过多数据会炸,所以有了上拉刷新。
(2)、但是就算一段一段的contact加载,总共数据过多最后还是会白屏。
解决方案:
1、始终加载手机屏幕滑动显示的那一小段dom。
2、上拉到顶+下拉到顶都设置个事件,不断请求然后剪切数据,始终就展示那400个,感觉不行,没见过有人加载出来了的数据又重新加载的。
3、最简单,分页。

5、前端分页一行代码:
this.data=this.allData.slice((pageNumber - 1) * pageSize, pageNumber * pageSize)

6、复制n个对象数组:

    let a = Array(100).fill(            
    {
      "loanCustId": "",
      //客户姓名
      "loanCustName": "aaa",
      "code": 0,
      "resultMessage": "",
      "externalUserid": "",
      "id": 0,
      //错误信息
      "message": "aaaa"
    })

7、跳转路径传值时都编码一下,不然item 里面有&等这种特殊字符,下个页面onLoad里面拿到的值就会被不正确截断。

      uni.navigateTo({
        url:
          "/pages/customerProfile/detail?selected=" +
          encodeURIComponent(JSON.stringify(item)),
      });

8、uni.$on想要每次都生效,就得写在onShow里面,写在onLoad里面就只在load的时候会响应。

9、uni-easyinput重复给其v-model的变量赋同一个值,界面上最后都不展示这个值了。
解决方案是在输入时先清空原来的值再设置一个定时器去再次更新。

this.inputVal = '';

setTimeOut(_ => {
  this.inputVal = newVal;
},0)

10、(1)不写宽度,内容增多时会自动延长宽度,然后换行。
(2)写了宽度,按道理也应该是这种效果,但是
如果是纯字母或者是纯数字就会出现超出了也不会自动换行的问题
在这里插入图片描述
使用word-wrap:break-word ;或者word-break:break-all;实现强制断行.
在这里插入图片描述
有中文:
在这里插入图片描述
没中文:
在这里插入图片描述
11、uniapp的button会自带一个border边框
去掉这个边框设置button::after{ border: none;}

12、user agent stylesheet 浏览器默认样式表,不能更改,不能在浏览器上进行修改看效果。
找准地方设置样式覆盖掉即可

13、调用接口最好的写法:catch到的err是个Error对象,输出其message即可,也可根据不同的name,进行不同的提示。https://zhidao.baidu.com/question/496439827900503804.html

this.$api.queryCustArchivesDetails({externalUserId:value.custMsg.externalUserId}).then((res) => {
    if (res.success) {

    } else {
      uni.showToast({
        icon: "none",
        title: res.message,
      });
    }
}).catch((err) => {
  this.$log.info(err);
  uni.showToast({
    icon: "none",
    title: err.message,
  });
})

待解释:uni.reLaunch后面的代码还会执行吗?uniapp 的sass不要scope 页面隔离?

<think>好的,我现在需要处理用户关于UniApp原生插件开发的查询。用户希望找到相关的指南、资源和教程,并且已经提供了几个引用链接。首先,我应该仔细分析这些引用内容,看看它们提供了哪些有用的信息。 引用[1]提到使用App离线SDK开发原生插件,特别是处理像aidl这样的原生功能。这可能涉及到Android的原生开发部分,需要指出相关文档的位置。用户可能想知道如何开始这样的开发,所以需要强调离线SDK的使用和原生扩展的方法。 引用[2]强调了开发环境的搭建是关键步骤,包括必要的软件安装和配置。这里需要提醒用户准备Android Studio、HBuilderX等工具,并参考官方文档。可能用户对具体需要哪些工具有疑问,所以需要详细列出。 引用[3]提供了最新的极简教程链接,并提到Android Studio的下载地址。这应该作为推荐的教程之一,特别是对于新手来说,极简教程可能更容易上手。同时,需要确保用户正确安装开发环境。 引用[4]涉及UTS代码的修改,用于处理图片的base64编码。这可能属于实际开发中的具体问题,比如如何获取和处理图片数据。用户可能需要了解如何在实际项目中应用这些步骤,所以需要提到后续的业务处理。 接下来,我需要组织这些信息,形成一个结构清晰的回答,涵盖开发指南、资源推荐、教程链接以及常见问题。同时,按照用户要求生成相关问题,这些问题应该覆盖环境搭建、开发步骤、调试测试和实际应用等方面。 需要确保所有LaTeX格式正确,但根据用户的问题,可能数学公式,但如果有提到版本号或代码中的变量,可能需要使用行内格式。过当前引用内容中似乎没有涉及数学表达式,所以可能需要太LaTeX处理。 最后,检查回答是否符合系统级指令,特别是引用标识是否正确添加在每个引用的末尾,并且相关问题与用户需求相关。确保使用中文回答,分点清晰,帮助用户逐步解决问题。</think>### UniApp原生插件开发指南与资源整理 #### 一、开发环境搭建 1. **必要工具安装** - 安装 **Android Studio**(用于开发Android原生插件)[^3],配置Java/Kotlin开发环境。 - 安装 **HBuilderX**(UniApp开发工具),并确保已集成App离线SDK[^1]。 - 配置 **Node.js** 和 **npm**(用于UTS编译)。 2. **环境验证** - 检查Android Studio的NDK、SDK路径是否正确配置[^2]。 - 在HBuilderX中创建测试项目,验证原生插件模板是否可用。 --- #### 二、开发流程与核心步骤 1. **创建原生插件项目** - 使用HBuilderX的 **Native插件开发模板** 初始化项目结构。 - 编UTS代码(TypeScript语法),调用原生API[^4]。例如: ```typescript export function getBase64Image(path: string): string { // 调用Android原生接口获取图片Base64 } ``` 2. **Android原生模块开发** - 在Android Studio中实现Java/Kotlin逻辑,通过 **AIDL** 或其他原生接口与UTS交互。 - 封装功能模块为JAR/AAR文件,并集成到UniApp项目中[^2]。 3. **调试与联调** - 使用HBuilderX的 **真机调试** 功能,实时查看插件运行效果。 - 通过日志工具(如Logcat)定位原生代码问题。 --- #### 三、关键资源与教程推荐 1. **官方文档** - [UniApp原生插件开发指南](https://uniapp.dcloud.net.cn/plugin/)(必读基础) - [Android开发者工具下载](https://developer.android.com/studio) 2. **实战教程** - **《最新uniapp原生插件开发极简教程》**:涵盖环境配置到实战案例。 - **《UniApp如何开发原生插件?指南(一)》**:重点解决AIDL集成等难点。 3. **代码示例** - **图片处理案例**:通过UTS获取Base64数据并保存到本地。 - **设备交互案例**:调用蓝牙、传感器等硬件接口。 --- #### 四、常见问题与解决 1. **插件无法加载** - 检查插件配置文件 **package.json** 的格式是否正确。 - 确保原生模块已正确注册到AndroidManifest.xml[^2]。 2. **跨平台兼容性问题** - 使用条件编译区分Android/iOS代码: ```typescript // #ifdef APP-ANDROID const result = androidModule.method(); // #endif ``` 3. **性能优化** - 减少JS与原生层的频繁通信,批量处理数据。 - 使用子线程处理耗时操作(如文件读)[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值