HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

mui中的遍历each

chrome

  each()

  哥斯拉大战金刚高清版迅雷下载地址:duan.kim

  each既是一个类方法,同时也是一个对象方法,两个方法适用场景不同;换言之,你可以使用mui.each()去遍历数组或json对象,也可以使用mui(selector).each()去遍历DOM结构。

  第一种:

  语法:

  mui.each(obj,handler);

  obj

  Type:Array||JSONObj

  需遍历的对象或数组;若为对象,仅遍历对象根节点下的key

  handler

  Type:Function(Integer||String index,Anything element)

  为每个元素执行的回调函数;其中,index表示当前元素的下标或key,element表示当前匹配元素

  example:

  输出当前数组中每个元素的平方

  var array=[1,2,3]

  mui.each(array,function(index,item){

  console.log(item*item);

  });

  第二种:

  语法:

  mui(selector).each(handler);

  handler

  Type:Function(Integer index,Element element)

  为每个匹配元素执行的回调函数;其中,index表示当前元素在匹配元素中的位置(下标,从0开始),element表示当前匹配元素,可用this关键字代替

  example:

  当前页面中有三个字段,如下:

  <div class="mui-input-group">

  <div class="mui-input-row">

  <label>字段1:</label>

  <input type="text"class="mui-input-clear"id="col1"placeholder="请输入">

  </div>

  <div class="mui-input-row">

  <label>字段2:</label>

  <input type="text"class="mui-input-clear"id="col2"placeholder="请输入">

  </div>

  <div class="mui-input-row">

  <label>字段3:</label>

  <input type="text"class="mui-input-clear"id="col3"placeholder="请输入">

  </div>

  </div>

  提交时校验三个字段均不能为空,若为空则提醒并终止业务逻辑运行,使用each()方法循环校验,如下:

  var check=true;

  mui(".mui-input-group input").each(function(){

  //若当前input为空,则alert提醒

  if(!this.value||trim(this.value)==""){

  var label=this.previousElementSibling;

  mui.alert(label.innerText+"不允许为空");

  check=false;

  return false;

  }

  });

  //校验通过,继续执行业务逻辑

  if(check){

  //.....

  }

继续阅读 »

  each()

  哥斯拉大战金刚高清版迅雷下载地址:duan.kim

  each既是一个类方法,同时也是一个对象方法,两个方法适用场景不同;换言之,你可以使用mui.each()去遍历数组或json对象,也可以使用mui(selector).each()去遍历DOM结构。

  第一种:

  语法:

  mui.each(obj,handler);

  obj

  Type:Array||JSONObj

  需遍历的对象或数组;若为对象,仅遍历对象根节点下的key

  handler

  Type:Function(Integer||String index,Anything element)

  为每个元素执行的回调函数;其中,index表示当前元素的下标或key,element表示当前匹配元素

  example:

  输出当前数组中每个元素的平方

  var array=[1,2,3]

  mui.each(array,function(index,item){

  console.log(item*item);

  });

  第二种:

  语法:

  mui(selector).each(handler);

  handler

  Type:Function(Integer index,Element element)

  为每个匹配元素执行的回调函数;其中,index表示当前元素在匹配元素中的位置(下标,从0开始),element表示当前匹配元素,可用this关键字代替

  example:

  当前页面中有三个字段,如下:

  <div class="mui-input-group">

  <div class="mui-input-row">

  <label>字段1:</label>

  <input type="text"class="mui-input-clear"id="col1"placeholder="请输入">

  </div>

  <div class="mui-input-row">

  <label>字段2:</label>

  <input type="text"class="mui-input-clear"id="col2"placeholder="请输入">

  </div>

  <div class="mui-input-row">

  <label>字段3:</label>

  <input type="text"class="mui-input-clear"id="col3"placeholder="请输入">

  </div>

  </div>

  提交时校验三个字段均不能为空,若为空则提醒并终止业务逻辑运行,使用each()方法循环校验,如下:

  var check=true;

  mui(".mui-input-group input").each(function(){

  //若当前input为空,则alert提醒

  if(!this.value||trim(this.value)==""){

  var label=this.previousElementSibling;

  mui.alert(label.innerText+"不允许为空");

  check=false;

  return false;

  }

  });

  //校验通过,继续执行业务逻辑

  if(check){

  //.....

  }

收起阅读 »

利用uniapp+tailwindcss+uview搭建的一套基础模板

利用uniapp+tailwindcss+uview搭建的一套基础模板内置了

  1. tailwindcss以及flex布局的css工具拓展
  2. 基本的列表和表单demo
  3. 统一的request api请求处理,枚举与正则校验

背景:之前用uniapp+uview开发了一大一小两个小程序,css方案用的原子风格的,发现用的还是挺爽的,就在想能不能用上tailwindcss,研究之后发现用Hbuilder创建的自由度比较低,于是选择了用Vue-cli4搭建了一套。

要求:
1. Node.js > 12

项目地址

插件市场

github

预览

https://i0.hdslb.com/bfs/album/0eabcc1cbdead3a5a98662ef2757760af6280bc5.png

继续阅读 »

利用uniapp+tailwindcss+uview搭建的一套基础模板内置了

  1. tailwindcss以及flex布局的css工具拓展
  2. 基本的列表和表单demo
  3. 统一的request api请求处理,枚举与正则校验

背景:之前用uniapp+uview开发了一大一小两个小程序,css方案用的原子风格的,发现用的还是挺爽的,就在想能不能用上tailwindcss,研究之后发现用Hbuilder创建的自由度比较低,于是选择了用Vue-cli4搭建了一套。

要求:
1. Node.js > 12

项目地址

插件市场

github

预览

https://i0.hdslb.com/bfs/album/0eabcc1cbdead3a5a98662ef2757760af6280bc5.png

收起阅读 »

live-pusher

直播

this.liveContext = uni.createLivePusherContext('livePusher', this); 直接是没有此方法,用的nvue

<template>
<view>
<live-pusher
id="livePusher"
ref="livePusher"
class="livePusher"
url="livePushUrl" mode="SD"
muted="true"
enable-camera="true"
auto-focus="true"

beauty="1" whiteness="2"
aspect="9:16"
@statechange="statechange"
@netstatus="netstatus"
@error="error"
></live-pusher>
<button class="btn" @click="start">开始推流</button>
<button class="btn" @click="pause">暂停推流</button>
<button class="btn" @click="resume">resume</button>
<button class="btn" @click="stop">停止推流</button>
<button class="btn" @click="snapshot">快照</button>
<button class="btn" @click="startPreview">开启摄像头预览</button>
<button class="btn" @click="stopPreview">关闭摄像头预览</button>
<button class="btn" @click="switchCamera">切换摄像头</button>

        <view>  
            <video :src="livePushUrl" style="width: 100%;height: 400rpx;" :autoplay="true" controls></video>  
        </view>  

</view>
</template>

继续阅读 »

this.liveContext = uni.createLivePusherContext('livePusher', this); 直接是没有此方法,用的nvue

<template>
<view>
<live-pusher
id="livePusher"
ref="livePusher"
class="livePusher"
url="livePushUrl" mode="SD"
muted="true"
enable-camera="true"
auto-focus="true"

beauty="1" whiteness="2"
aspect="9:16"
@statechange="statechange"
@netstatus="netstatus"
@error="error"
></live-pusher>
<button class="btn" @click="start">开始推流</button>
<button class="btn" @click="pause">暂停推流</button>
<button class="btn" @click="resume">resume</button>
<button class="btn" @click="stop">停止推流</button>
<button class="btn" @click="snapshot">快照</button>
<button class="btn" @click="startPreview">开启摄像头预览</button>
<button class="btn" @click="stopPreview">关闭摄像头预览</button>
<button class="btn" @click="switchCamera">切换摄像头</button>

        <view>  
            <video :src="livePushUrl" style="width: 100%;height: 400rpx;" :autoplay="true" controls></video>  
        </view>  

</view>
</template>

收起阅读 »

HBuilder如何分栏?

icon

大家在设计网页时为了达到更好的显示效果,一般都会使用css3的属性来进行div标签分栏设计,一些新上手的小伙伴还不清楚具体的操作步骤,下面就跟着小编一起来看看实现方法吧。

你好李焕英下载地址:duan.kim

HBuilderX实现div标签分栏显示方法

第一步,打开 HBuilderX 工具,创建web项目,然后新建文件

第二步,在标签中,插入三个 div标签 ,分别设置不同的内容

第三步,利用 one和two ID选择器 ,设置对应的样式属性

第四步, 保存代码并运行页面文件 ,打开浏览器,查看界面效果

第五步,再次添加设置第三个div标签的样式,分别添加 background-color属性

第六步,再次保存代码并刷新浏览器,可以看到界面出现了 分栏

继续阅读 »

大家在设计网页时为了达到更好的显示效果,一般都会使用css3的属性来进行div标签分栏设计,一些新上手的小伙伴还不清楚具体的操作步骤,下面就跟着小编一起来看看实现方法吧。

你好李焕英下载地址:duan.kim

HBuilderX实现div标签分栏显示方法

第一步,打开 HBuilderX 工具,创建web项目,然后新建文件

第二步,在标签中,插入三个 div标签 ,分别设置不同的内容

第三步,利用 one和two ID选择器 ,设置对应的样式属性

第四步, 保存代码并运行页面文件 ,打开浏览器,查看界面效果

第五步,再次添加设置第三个div标签的样式,分别添加 background-color属性

第六步,再次保存代码并刷新浏览器,可以看到界面出现了 分栏

收起阅读 »

【建议】希望在打包 队列中 可以取消打包

云端打包 用户建议 优化建议 App打包

我们在打包中,显示XXXX队列中。是无法取消的!!


有时候 我们发现 点错了/需求更改了/不想打包了


都没有办法 取消 这个是一个超级弊端 浪费资源不说 还麻烦


  • [HBuilder] 14:52:06.798 项目 aw [UNI7608817]的打包状态:
    [HBuilder] 14:52:06.798 时间: 2021-04-03 14:38:14 类型: iOS越狱包 队列中

[HBuilder] 14:53:06.560 项目 aw [UNI7608817]的打包状态:
[HBuilder] 14:53:06.560 时间: 2021-04-03 14:38:21 类型: Android自有证书 队列中


  • 是无法取消的!!
继续阅读 »

我们在打包中,显示XXXX队列中。是无法取消的!!


有时候 我们发现 点错了/需求更改了/不想打包了


都没有办法 取消 这个是一个超级弊端 浪费资源不说 还麻烦


  • [HBuilder] 14:52:06.798 项目 aw [UNI7608817]的打包状态:
    [HBuilder] 14:52:06.798 时间: 2021-04-03 14:38:14 类型: iOS越狱包 队列中

[HBuilder] 14:53:06.560 项目 aw [UNI7608817]的打包状态:
[HBuilder] 14:53:06.560 时间: 2021-04-03 14:38:21 类型: Android自有证书 队列中


  • 是无法取消的!!
收起阅读 »

分享个自己开发的影视类APP,基于苹果CMS,独立对接APP的后台,完整度高

nvue

独立APP后台,对接苹果CMS。
完整度高,列举如下一下主要功能:

  1. 苹果CMS系统(系统自带了采集)
  2. 独立的APP对接系统,对接APP和苹果CMS网站
  3. 视频专题滚动
  4. m3u8流媒体文件缓存和播放
  5. 视频播放换源线路
  6. 一键投屏
  7. 追剧
  8. 弹幕+评论
    。。。

QQ:2701309467

继续阅读 »

独立APP后台,对接苹果CMS。
完整度高,列举如下一下主要功能:

  1. 苹果CMS系统(系统自带了采集)
  2. 独立的APP对接系统,对接APP和苹果CMS网站
  3. 视频专题滚动
  4. m3u8流媒体文件缓存和播放
  5. 视频播放换源线路
  6. 一键投屏
  7. 追剧
  8. 弹幕+评论
    。。。

QQ:2701309467

收起阅读 »

uni-app下微信小程序自动埋点

由于公司运营需求,需要给代码埋点,而埋点并不是一个和业务强相关的代码,各个页面的埋点工作量也非常的大,一直琢磨能不能自动埋点呢,于是就有了下面的探索

公司通过uni-app开发的主要是微信小程序,所以本文主要是以开发微信小程序的自动化埋点为主

诸如市面上各种统计代码,需要上报埋点事件时,以百度移动统计为例
getApp().mtj.trackEvent(event, args);就可以上报事件和参数

代码虽然很简单,但每个页面统计的点少的三四个,多的上十个,各个地方的统计代码加起来,数量比较大,而且不方便统一管理。
于是,我想到了方案一

  1. 在main.js中加入方法

2.在每一个page和component最外层的<view>标签中加入click方法,此时点击页面中的所有任意元素,都会有事件传输到elementTracker方法中,通过判断clickInfo.target是不是目标统计元素,从而决定是否上报,数据也可以从dataset中取到

但这个方法有个不好的地方就是


在这种嵌套结构的view当中时,只有target只会有你点击的对象,也就是你点的是image就只能取image的dataset,点击的是外层的view取外层view的dataset,情况往往是点击view和点击image触发的是同一事件,可能在这里你需要重复写两遍

有没有更好的解决方案呢,答案是有的,利用的是微信的wx.createSelectorQuery,通过点击时计算点击的x,y计算是否落在需要统计的元素上,于是就产生了下面这段代码


通过计算点击区域是否落在需要统计的元素上,这样解决了点击父组件需要统计,点击子组件统计不到的问题

这时,我们的统计代码合元素可以写到一个统一的配置文件里


但是这个方法也不是完美的,有两个bug,一是触发wx.createSelectorQuery返回的异步的结果需要时间,可能页面跳走,元素隐藏或不渲染导致找不到需要统计的元素了,二就是如果元素有重叠,如何知道哪个是在上面的元素
第二个问题我用了一个stop参数标识只要这个元素上报了,那这次点击接下来就停止上报。

参考项目 https://github.com/zhengguorong/xbosstrack-wechat

继续阅读 »

由于公司运营需求,需要给代码埋点,而埋点并不是一个和业务强相关的代码,各个页面的埋点工作量也非常的大,一直琢磨能不能自动埋点呢,于是就有了下面的探索

公司通过uni-app开发的主要是微信小程序,所以本文主要是以开发微信小程序的自动化埋点为主

诸如市面上各种统计代码,需要上报埋点事件时,以百度移动统计为例
getApp().mtj.trackEvent(event, args);就可以上报事件和参数

代码虽然很简单,但每个页面统计的点少的三四个,多的上十个,各个地方的统计代码加起来,数量比较大,而且不方便统一管理。
于是,我想到了方案一

  1. 在main.js中加入方法

2.在每一个page和component最外层的<view>标签中加入click方法,此时点击页面中的所有任意元素,都会有事件传输到elementTracker方法中,通过判断clickInfo.target是不是目标统计元素,从而决定是否上报,数据也可以从dataset中取到

但这个方法有个不好的地方就是


在这种嵌套结构的view当中时,只有target只会有你点击的对象,也就是你点的是image就只能取image的dataset,点击的是外层的view取外层view的dataset,情况往往是点击view和点击image触发的是同一事件,可能在这里你需要重复写两遍

有没有更好的解决方案呢,答案是有的,利用的是微信的wx.createSelectorQuery,通过点击时计算点击的x,y计算是否落在需要统计的元素上,于是就产生了下面这段代码


通过计算点击区域是否落在需要统计的元素上,这样解决了点击父组件需要统计,点击子组件统计不到的问题

这时,我们的统计代码合元素可以写到一个统一的配置文件里


但是这个方法也不是完美的,有两个bug,一是触发wx.createSelectorQuery返回的异步的结果需要时间,可能页面跳走,元素隐藏或不渲染导致找不到需要统计的元素了,二就是如果元素有重叠,如何知道哪个是在上面的元素
第二个问题我用了一个stop参数标识只要这个元素上报了,那这次点击接下来就停止上报。

参考项目 https://github.com/zhengguorong/xbosstrack-wechat

收起阅读 »

打安卓包,打包失败,包错误日志https://service.dcloud.net.cn/build/errorLog/f1452b50-92b2-11eb-a333-d744a281b21a

不是bug

首先,更新 manifest.json 中的版本号。
比如之前是 1.0.0,那么新版本应该是 1.0.1 或 1.1.0 这样。

你要的解决打包失败原因来了:

然后,在 HBuilderX 中生成升级包(wgt)。
菜单->发行->原生App-制作移动App资源升级包
生成结束会在控制台告知升级包的输出位置。

就成功了!希望能帮助到你。

继续阅读 »

首先,更新 manifest.json 中的版本号。
比如之前是 1.0.0,那么新版本应该是 1.0.1 或 1.1.0 这样。

你要的解决打包失败原因来了:

然后,在 HBuilderX 中生成升级包(wgt)。
菜单->发行->原生App-制作移动App资源升级包
生成结束会在控制台告知升级包的输出位置。

就成功了!希望能帮助到你。

收起阅读 »

uniapp H5端不能够定位当前位置的问题

uniapp

H5 端获取定位信息,需要部署在 https 服务上,本地预览(localhost)仍然可以使用 http 协议。(照搬官方文档)

参考文章链接
这篇文章里面提到需要配置腾讯地图的key,我配置上之后地图列表加载不出来,不知道是不是申请的步骤不对,我只用了https服务就ok了。

继续阅读 »

H5 端获取定位信息,需要部署在 https 服务上,本地预览(localhost)仍然可以使用 http 协议。(照搬官方文档)

参考文章链接
这篇文章里面提到需要配置腾讯地图的key,我配置上之后地图列表加载不出来,不知道是不是申请的步骤不对,我只用了https服务就ok了。

收起阅读 »