IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 小程序开发过程中遇到过的那些坑 -> 正文阅读

[移动开发]小程序开发过程中遇到过的那些坑

分享一下记忆中遇到的小程序开发过程中的问题

开发中会遇到的问题千奇百怪,这里也只是我有记录的部分问题,或者对你来说根本算不上是问题,但是这里我还是想记录一下,欢迎赐教哦

1、页面滑动后,切换底部tab时,影响其他页面位置

分析:这是因为小程序不同的tab页面其实是公用的一个页面,只是不同的组件之间的切换,所以页面滑动后切换组件时也会受影响。
解决思路:通过页面滚动事件,在切换时将滚动高度置为0
示例:

onPageScroll:function(e){ // 获取滚动条当前位置
    console.log(e)
},
goTop: function (e) {  // 一键回到顶部
 if (wx.pageScrollTo) {//抖音小程序使用uni.pageScrollTo
    wx.pageScrollTo({
      scrollTop: 0
    })
  } else {
    wx.showModal({
      title: '提示',
      content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
    })
  }
}  

2、抖音小程序跳转直播间功能

以下示例参考字节开发文档

tt.openWebcastRoom(options)
//提供从小程序跳转到直播间的能力。仅支持抖音 APP。
参数说明
options 为 Object 类型,属性如下:
属性名	      类型	  默认值 必填	说明	 最低支持版本
streamerId	string	  --	否	主播 id	1.87.0
success  	function  --	否	接口调用成功的回调函数	1.87.0
fail	   function	  --	否	接口调用失败的回调函数	1.87.0
complete	function  --	否	接口调用结束的回调函数(调用成功、失败都会执行)	1.87.0

回调成功
参数为 Object 类型,属性如下:
参数	参数类型	说明	最低支持版本
errMsg	string	回调信息	1.87.0

回调失败
参数为 Object 类型,属性如下:
参数	参数类型	说明	最低支持版本
errNo	number	错误码	1.87.0
errMsg	string	错误信息	1.87.0

代码示例:
<input
	value="{{streamerId}}"
	bindinput="changeStreamerId"
	placeholder="请输入主播id">
</input>
<button type="default" size="default" bindtap="openWebcastRoom">跳转直播</button>

Page({
  data: {
    streamerId: "",
  },
  changeStreamerId(e) {
    this.setData({
      streamerId: e.detail.value,
    });
  },
  openWebcastRoom(e) {
    tt.openWebcastRoom({
      streamerId: this.data.streamerId,
      success(res) {
        console.log("调用成功", res);
      },
      fail(res) {
        console.log("调用失败", res);
      },
    });
  },
});

3、抖音小程序跳转个人主页

以下示例参考字节开发文档

tt.openAwemeUserProfile(options);
调用跳转个人抖音号主页,用户可以选择关注/取消关注抖音号。

options 为 object 类型,属性如下:
属性名	类型	默认值	必填	说明	最低支持版本
success	function		否	接口调用成功后的回调函数	1.84.0
fail	function		否	接口调用失败后的回调函数	1.84.0
complete	function		否	接口调用结束后的回调函数(调用成功、失败都会执行)	1.84
使用示例:
tt.openAwemeUserProfile({
  success: (res) => {
    console.log(res);
  },
});
Tip: 使用该功能前开发者需要绑定想要跳转的抖音号。

4、如何让 HTML识别 string 里的 ‘\n’ 并成功换行显示

在需要换行展示的盒子的 css 设置:
white-space: pre-line;
然后页面就能成功识别 ‘\n’ ,并换行显示

5、小程序分页功能

实现思路:小程序的分页功能主要是指下拉加载功能,下拉时改变请求数据的分页数据,把数据进行追加到数据列表里面
主要利用的事件是:
onReachBottom()
监听用户上拉触底事件。

  • 可以在app.jsonwindow选项中或页面配置中设置触发距离onReachBottomDistance
  • 在触发距离内滑动期间,本事件只会被触发一次。

配合使用的组件:
<u-loadmore :status="status" />
u-view下拉加载组件
通过status设置组件的状态,加载前值为loadmore,加载中为loading,没有数据为nomore
使用示例:

<template>
<view>
    <u-loadmore 
       :status="status"  
       :loading-text="loadingText" 
       :loadmore-text="loadmoreText" 
       :nomore-text="nomoreText" />
    <view v-for=(item,index in dataList) :key=index>{{item}}</view>
</view>
</template>
<script>
export default {
data(){
return{
  dataList:[],
  pageNum:1,//第1页
  pageSize:10,//10页每条
  pages:0
  status: 'loadmore',
  loadingText: '努力加载中'
  loadmoreText: '轻轻上拉',
  nomoreText: '实在没有了'
  }
},
methods:{
  onReachBottom(){
    //判断是否是最后一页
      if (this.pages === this.pageNum) return
      this.pageNum = ++this.pageNum
      this.getList()//请求页面需要分页展示的数据方法
  },
  getList(){
   //请求列表数据
   this.status = 'loading'
  const res = 具体请求回来的数据列表
  this.dataList=this.dataList.concat(res.xxx)
      //总数赋值
      this.pages=res.total //total数据总数
       if (this.pages > this.pageNum) {
              this.status = 'loadmore'  
            } else {
              this.status = 'nomore'
            }
      }
   }
}
</script>

6、小程序富文本解析给文字设置样式

如果要修改富文本文字的样式,直接在标签里面添加类名或者style不生效,可以采取用正则进行替换的方法
这里以常用的小程序解析富文本的组件为例

<view>
	<u-modal :show="show"  :title="title" >
		<view class="slot-content">
			<rich-text :nodes="pluginTips"></rich-text>
		</view>
	</u-modal>
	<u-button @click="show = true">打开文本弹窗</u-button>
</view>
const text = `各位读者你们好:<br> <p>如果你喜欢我的文章可以留下你来过的痕迹哦,如果你不喜欢那说明我还不够完美,欢迎指教哦。</p>`
//比如我要实现P标签里面的文字首行缩进以及文字颜色等效果
data(){
   textStyle: text.replace(/\<p/gi,'<p style="text-indent:2em;color:#bfc"'),
}

写给看到最后的你

亲爱的朋友,感谢你看到了最后,能够相遇便是缘分,你路过我的文章亦是令我欢喜的缘,新的一年里祝愿朋友们:虎虎生威!虎气十足!如虎添‘亿’!??????

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-01-28 12:02:03  更:2022-01-28 12:03:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 12:35:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码