
关于swiper做长列表的解决方案(不需要scroll-view)
html 结构
<view class='content'>
<swiper
class="swiper"
:disable-touch="swiperTouch"
@change='swiperChange'
:current='headTab_index'>
<swiper-item class='swiper-item' v-for='(item,index) in tab' :key='index'>
<view class=''list' v-if='headTab_index == index'>
<list :list="list"/>
</view>
</swiper-item>
</swiper>
</view>
注意:swiper组件的父组件必须设置宽度。否则滑动翻页时会出现偏移的问题
.content {
width: 100vw;
}
.list {
height: 80vh; // 给list设置高度是因为列表为空时,防止滑动出现脱标和偏移
}
`
在app.vue 中写上修改swiper 样式的代码
//轮播图高度自动
.swiper {
height: auto;
}
.uni-swiper-wrapper {
overflow: visible!important;
}
.swiper-item {
width: 100vw!important;
height: auto!important;
}
html 结构
<view class='content'>
<swiper
class="swiper"
:disable-touch="swiperTouch"
@change='swiperChange'
:current='headTab_index'>
<swiper-item class='swiper-item' v-for='(item,index) in tab' :key='index'>
<view class=''list' v-if='headTab_index == index'>
<list :list="list"/>
</view>
</swiper-item>
</swiper>
</view>
注意:swiper组件的父组件必须设置宽度。否则滑动翻页时会出现偏移的问题
.content {
width: 100vw;
}
.list {
height: 80vh; // 给list设置高度是因为列表为空时,防止滑动出现脱标和偏移
}
`
在app.vue 中写上修改swiper 样式的代码
//轮播图高度自动
.swiper {
height: auto;
}
.uni-swiper-wrapper {
overflow: visible!important;
}
.swiper-item {
width: 100vw!important;
height: auto!important;
}
收起阅读 »

App Store 上架的iOS APP被拒的原因及解决方案
苹果官方曾经发布了iOS应用遭拒的十大原因,帮助IOS开发者更好地设计符合苹果上架规则的iOS应用。
在苹果官方列出的十大原因中,所占比重最高的是“信息提交不全”,达到14%。
属于这一原因的有可能是IOS应用信息描述不完善,也有可能是开发者忘记包含支持页的链接。
但这一理由的涵盖范围非常广泛,或许缺乏指导意义。
除此之外,排名第3的“不遵守《开发者项目授权协议》”同样过于宽泛,其他8条虽然较为具体,但所谓的“漏洞”同样包含很多
情况。
这十大原因在遭拒应用中的合并占比达到60%。
以下为详细原因列表以及所占比例:
1、信息提交不全(占比14%)
包括但不限于以下情形:
1.1、证书资质不齐全
1.2、元数据描述不全 ;
2、应用存在漏洞、未经用户允许的权限(占比8%)
包括但不限于以下情形:
2.1、应用程序不通知,并获得用户的同意,然后收集,传输,或使用位置数据
2.2、使用基于位置的API,用于自动或自主控制的车辆,飞机或其他设备的应用
2.3、应用程序使用基于位置的API,用于调度,车队管理,紧急服务
2.4、提供推送通知的应用程序,而无需使用苹果推送通知(APN)API
2.5、使用APN服务的应用程序,没有从苹果获得推送应用程序ID
2.6、没有首先获得用户同意发送推送通知的应用程序,
2.7、发送敏感的个人或机密信息的使用推送通知的应用程序,
2.8、使用推送通知的应用程序,发送不请自来的邮件或网络钓鱼或垃圾邮件的目的,
2.9、应用程序不能使用推送通知发送广告,促销或任何形式的直接营销
2.10、使用推送通知的应用程序不能向用户收费
2.11、过度使用网络容量或带宽的APN服务或造成过重的负担的设备推送通知的应用程序
2.12、传送病毒,文件,计算机代码或程序,可能会损害或破坏的APN服务的正常运行的应用程序,
2.13、最终用户或任何第三方应用程序显示任何玩家ID会被拒绝
2.14、应用程序用于任何用途以外的其他游戏中心条款批准的使用玩家的ID
2.15、从iOS开发者计划的开发人员尝试反向查找,跟踪,关联,关联,矿山,收获,或以其他方式利用玩家的ID,别名或
通过游戏中心获得的其他信息将被删除
2.16、游戏中心的信息,如排行榜成绩,只可用于在应用程序批准使用游戏中心
2.17、游戏中心服务的应用程序,使用发送不请自来的邮件或网络钓鱼或垃圾邮件的目的
2.18、过度使用网络容量或带宽的游戏中心的应用
2.19、传送病毒,文件,计算机代码或程序,可能会损害或破坏游戏中心服务的正常运行的应用程序,“应用程序,人为地
增加展示次数或点击的广告;
3、不遵守《开发者项目授权协议》(占比6%)
包括但不限于以下情形:
3.1、使用私有API
3.2、以任何方式下载代码的应用
3.3、安装或启动其他可执行代码的应用
3.4、主要是市场推广或广告的应用程序
3.5、应用程序在蜂窝网络环境下载大于20MB的数据(自动被禁止在App Store)
3.6、多任务的应用程序可能只使用与后台服务,一般只提供给:网络电话,音频播放等app使用,任务完成后,需要本地通
知。
3.7、鼓励过量饮酒或非法物质,或鼓励未成年人饮酒或吸香烟的应用程序
3.8、开发“垃圾邮件”等类似的
3.9、未经开放的类目 ;
4、界面太复杂、不够好、代码不规范(占比6%)
包括但不限于以下情形:
4.1、界面布局有明显错误
4.2、应用程序读取或写入数据超出其指定的容器区域
4.3、iPhone应用程序也必须不加修改地运行在iPad,iPhone分辨率和2倍iPhone 3GS的分辨率
4.4、浏览网页,必须使用iOS WebKit框架和WebKit JavaScript ;
5、名称、描述、截屏与应用内容或功能不相关(占比5%)
包括但不限于以下情形:
5.1、挂羊头卖狗头的应用
5.2、包括未公开的或隐藏功能的 ;
6、包含错误、欺诈或误导性内容或者使用与其他应用相似的的名称或图标(占比5%)
包括但不限于以下情形:
6.1、山寨或者重复的应用(App Store中已经存在有相同功能的应用程序)
6.2、虚假功能,没有明确目的
6.3、应用程序提供了不正确的诊断或其他设备的数据不准确 ;
7、iTunes Connect中的应用名与设备上显示的应用名不相似,引发困扰(占比4%)
包括但不限于以下情形:
7.1、应用程序提供了不正确的诊断或其他设备的数据不准确
7.2、应用程序类别和类型的选择是不恰当的应用程序内容 ;
8、包含占位文本(占比4%) ;
9、评级不合适(占比3%)
包括但不限于以下情形:
9.1、应用程序必须有特定用途,不能为用户提供持久娱乐价值可能会被拒绝
9.2、应用程序与应用程序的图标和屏幕截图,不支持4 +年龄评级 ;
10、“试用”、“演示”或“测试”版本也会被拒
如何避免IOS应用上架被拒风险?
1、完善类目对应的上架所需要的信息/资质
包括但不限于名称、图标、启动页、营业执照、商标、ICP许可证等行业经营所需的相关证件,最重要的事要完善开发者账号
信息,每样账号的可以点击这里申请;
2、上线前对APP应用进行分发内测
2.1、可以对开发者的 IOS应用分发至苹果官方的testflight测试软件上,通过苹果官方分发链接发送给好友/用户下载安装,这也
就是第三方服务商所指的苹果TF签名.
2.2、如果您的开发者账号不具备发布至testflight测试软件上,那您可以寻找第三方签名服务商:
联系QQ:79177618(专业iOS签名)通过苹果企业签名(按月收费不限安装次数)或苹果超级签名(按安装设备数收
费,不限安装次数)的方式对您的APP应用进行分发测试,同时支持安卓Android系统和苹果IOS系统;
3、使用第三方服务商的签名有什么优势?
3.1、不限应用类别,无需经过苹果官方审核即可实现APP应用安装在IOS设备上
3.2、无需类别资质,签名上架的APP应用无需相关资质即可分发
3.3、无需提供源码,只需要提供签名所需要的.ipa文件包即可。
专注于App Store上架,APP代上架,如有需要的请联系qq:79177618
苹果官方曾经发布了iOS应用遭拒的十大原因,帮助IOS开发者更好地设计符合苹果上架规则的iOS应用。
在苹果官方列出的十大原因中,所占比重最高的是“信息提交不全”,达到14%。
属于这一原因的有可能是IOS应用信息描述不完善,也有可能是开发者忘记包含支持页的链接。
但这一理由的涵盖范围非常广泛,或许缺乏指导意义。
除此之外,排名第3的“不遵守《开发者项目授权协议》”同样过于宽泛,其他8条虽然较为具体,但所谓的“漏洞”同样包含很多
情况。
这十大原因在遭拒应用中的合并占比达到60%。
以下为详细原因列表以及所占比例:
1、信息提交不全(占比14%)
包括但不限于以下情形:
1.1、证书资质不齐全
1.2、元数据描述不全 ;
2、应用存在漏洞、未经用户允许的权限(占比8%)
包括但不限于以下情形:
2.1、应用程序不通知,并获得用户的同意,然后收集,传输,或使用位置数据
2.2、使用基于位置的API,用于自动或自主控制的车辆,飞机或其他设备的应用
2.3、应用程序使用基于位置的API,用于调度,车队管理,紧急服务
2.4、提供推送通知的应用程序,而无需使用苹果推送通知(APN)API
2.5、使用APN服务的应用程序,没有从苹果获得推送应用程序ID
2.6、没有首先获得用户同意发送推送通知的应用程序,
2.7、发送敏感的个人或机密信息的使用推送通知的应用程序,
2.8、使用推送通知的应用程序,发送不请自来的邮件或网络钓鱼或垃圾邮件的目的,
2.9、应用程序不能使用推送通知发送广告,促销或任何形式的直接营销
2.10、使用推送通知的应用程序不能向用户收费
2.11、过度使用网络容量或带宽的APN服务或造成过重的负担的设备推送通知的应用程序
2.12、传送病毒,文件,计算机代码或程序,可能会损害或破坏的APN服务的正常运行的应用程序,
2.13、最终用户或任何第三方应用程序显示任何玩家ID会被拒绝
2.14、应用程序用于任何用途以外的其他游戏中心条款批准的使用玩家的ID
2.15、从iOS开发者计划的开发人员尝试反向查找,跟踪,关联,关联,矿山,收获,或以其他方式利用玩家的ID,别名或
通过游戏中心获得的其他信息将被删除
2.16、游戏中心的信息,如排行榜成绩,只可用于在应用程序批准使用游戏中心
2.17、游戏中心服务的应用程序,使用发送不请自来的邮件或网络钓鱼或垃圾邮件的目的
2.18、过度使用网络容量或带宽的游戏中心的应用
2.19、传送病毒,文件,计算机代码或程序,可能会损害或破坏游戏中心服务的正常运行的应用程序,“应用程序,人为地
增加展示次数或点击的广告;
3、不遵守《开发者项目授权协议》(占比6%)
包括但不限于以下情形:
3.1、使用私有API
3.2、以任何方式下载代码的应用
3.3、安装或启动其他可执行代码的应用
3.4、主要是市场推广或广告的应用程序
3.5、应用程序在蜂窝网络环境下载大于20MB的数据(自动被禁止在App Store)
3.6、多任务的应用程序可能只使用与后台服务,一般只提供给:网络电话,音频播放等app使用,任务完成后,需要本地通
知。
3.7、鼓励过量饮酒或非法物质,或鼓励未成年人饮酒或吸香烟的应用程序
3.8、开发“垃圾邮件”等类似的
3.9、未经开放的类目 ;
4、界面太复杂、不够好、代码不规范(占比6%)
包括但不限于以下情形:
4.1、界面布局有明显错误
4.2、应用程序读取或写入数据超出其指定的容器区域
4.3、iPhone应用程序也必须不加修改地运行在iPad,iPhone分辨率和2倍iPhone 3GS的分辨率
4.4、浏览网页,必须使用iOS WebKit框架和WebKit JavaScript ;
5、名称、描述、截屏与应用内容或功能不相关(占比5%)
包括但不限于以下情形:
5.1、挂羊头卖狗头的应用
5.2、包括未公开的或隐藏功能的 ;
6、包含错误、欺诈或误导性内容或者使用与其他应用相似的的名称或图标(占比5%)
包括但不限于以下情形:
6.1、山寨或者重复的应用(App Store中已经存在有相同功能的应用程序)
6.2、虚假功能,没有明确目的
6.3、应用程序提供了不正确的诊断或其他设备的数据不准确 ;
7、iTunes Connect中的应用名与设备上显示的应用名不相似,引发困扰(占比4%)
包括但不限于以下情形:
7.1、应用程序提供了不正确的诊断或其他设备的数据不准确
7.2、应用程序类别和类型的选择是不恰当的应用程序内容 ;
8、包含占位文本(占比4%) ;
9、评级不合适(占比3%)
包括但不限于以下情形:
9.1、应用程序必须有特定用途,不能为用户提供持久娱乐价值可能会被拒绝
9.2、应用程序与应用程序的图标和屏幕截图,不支持4 +年龄评级 ;
10、“试用”、“演示”或“测试”版本也会被拒
如何避免IOS应用上架被拒风险?
1、完善类目对应的上架所需要的信息/资质
包括但不限于名称、图标、启动页、营业执照、商标、ICP许可证等行业经营所需的相关证件,最重要的事要完善开发者账号
信息,每样账号的可以点击这里申请;
2、上线前对APP应用进行分发内测
2.1、可以对开发者的 IOS应用分发至苹果官方的testflight测试软件上,通过苹果官方分发链接发送给好友/用户下载安装,这也
就是第三方服务商所指的苹果TF签名.
2.2、如果您的开发者账号不具备发布至testflight测试软件上,那您可以寻找第三方签名服务商:
联系QQ:79177618(专业iOS签名)通过苹果企业签名(按月收费不限安装次数)或苹果超级签名(按安装设备数收
费,不限安装次数)的方式对您的APP应用进行分发测试,同时支持安卓Android系统和苹果IOS系统;
3、使用第三方服务商的签名有什么优势?
3.1、不限应用类别,无需经过苹果官方审核即可实现APP应用安装在IOS设备上
3.2、无需类别资质,签名上架的APP应用无需相关资质即可分发
3.3、无需提供源码,只需要提供签名所需要的.ipa文件包即可。
专注于App Store上架,APP代上架,如有需要的请联系qq:79177618

分享一下iOS苹果上架App Store审核被拒4.3的解决方案
近段时间,苹果审核越来越严格。4.3是经常遇到的问题之一,今天给大家分享一下遇到4.3的解决方案。
1、4.3一般会有2种情况,想要快速解决就得弄清楚自己的属于哪一种情况
(1)代码相似(一般会被机审直接打回)
(2)应用与提交到App Store的其他应用相同的功能集(一般是人审4.3);
针对上面的2种回复去辨别属于哪一种情况。还有一个方式是可以查看自己APP进入审核的时间和被打回来的时间间隔,如果时间太短的可以确定是机审无疑。
针对机审4.3的修改方案
1、选择APP中的其中2个Tab做板式的变更,最好是首页+另一个Tab
2、修改UI、Icon、启动页、五图
3、修改工程名 、修改类名前缀 、文件夹文件名。
4、更换提交账户、IP、打包电脑、测试账户最好也可以更换一下
基本上以上的几个操作可以解决4.3的问题
还有网上还有许多要加垃圾代码或者混淆代码进去的方式在2019年后已经不适用,现在苹果机审已经非常强大,如果有不相信的同学可以亲身体验一下。苹果爸爸会毫不犹豫的给你打回来一个2.3.1。亲测有效,哈哈哈!
人审4.3的修改方案
如果是人工打回来的4.3,只能通过沟通去解决了。之前的解决方式是详细说明每一个页面包含哪一些具体的功能,还有自己的APP和其他APP的优势在哪一些地方。最好可以提供一下APP的使用视频,如果有软著什么的最好也一起丢给苹果吧。
楼主的提审方案就是——有什么资料都丢过去,不管苹果需不需要,以防万一。
上面的方法是已经被楼主证实过确定可行的方案(20年9月之前)
如有需要代上架App Store的可以联系我代上架App,专注解决各种被拒问题:
联系方式,QQ:79177618
近段时间,苹果审核越来越严格。4.3是经常遇到的问题之一,今天给大家分享一下遇到4.3的解决方案。
1、4.3一般会有2种情况,想要快速解决就得弄清楚自己的属于哪一种情况
(1)代码相似(一般会被机审直接打回)
(2)应用与提交到App Store的其他应用相同的功能集(一般是人审4.3);
针对上面的2种回复去辨别属于哪一种情况。还有一个方式是可以查看自己APP进入审核的时间和被打回来的时间间隔,如果时间太短的可以确定是机审无疑。
针对机审4.3的修改方案
1、选择APP中的其中2个Tab做板式的变更,最好是首页+另一个Tab
2、修改UI、Icon、启动页、五图
3、修改工程名 、修改类名前缀 、文件夹文件名。
4、更换提交账户、IP、打包电脑、测试账户最好也可以更换一下
基本上以上的几个操作可以解决4.3的问题
还有网上还有许多要加垃圾代码或者混淆代码进去的方式在2019年后已经不适用,现在苹果机审已经非常强大,如果有不相信的同学可以亲身体验一下。苹果爸爸会毫不犹豫的给你打回来一个2.3.1。亲测有效,哈哈哈!
人审4.3的修改方案
如果是人工打回来的4.3,只能通过沟通去解决了。之前的解决方式是详细说明每一个页面包含哪一些具体的功能,还有自己的APP和其他APP的优势在哪一些地方。最好可以提供一下APP的使用视频,如果有软著什么的最好也一起丢给苹果吧。
楼主的提审方案就是——有什么资料都丢过去,不管苹果需不需要,以防万一。
上面的方法是已经被楼主证实过确定可行的方案(20年9月之前)
如有需要代上架App Store的可以联系我代上架App,专注解决各种被拒问题:
联系方式,QQ:79177618
收起阅读 »
解决uni.downloadFile 下载图片跨域问题
确保图片是直接在nginx 项目下面 配置对应的配置文件添加下面的配置项 重启nginx 即可
location ~ ..(gif|jpg|jpeg|png|bmp|swf)$
{
add_header Access-Control-Allow-Origin ;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
expires 30d;
error_log off;
access_log /dev/null;
}
确保图片是直接在nginx 项目下面 配置对应的配置文件添加下面的配置项 重启nginx 即可
location ~ ..(gif|jpg|jpeg|png|bmp|swf)$
{
add_header Access-Control-Allow-Origin ;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
expires 30d;
error_log off;
access_log /dev/null;
}
收起阅读 »

微信外挂软件主犯获刑10年:一键洗白、删除好友、修改朋友圈……
3月31日,广州市南沙区人民法院公开宣判被告人陈某展等38人提供侵入、非法控制计算机信息系统程序、工具、非法获取计算机信息系统数据、非法控制计算机信息系统、侵犯公民个人信息、掩饰、隐瞒犯罪所得一案。

宣判现场
被告人梁某伦、陈某展犯提供侵入、非法控制计算机信息系统程序、工具罪、非法获取计算机信息系统数据、非法控制计算机信息系统罪、侵犯公民个人信息罪,数罪并罚,分别被判处有期徒刑十年、八年六个月,并处罚金人民币十一万六千元、十三万二千元,其余36名被告人犯提供侵入、非法控制计算机信息系统程序、工具罪、非法获取计算机信息系统数据、非法控制计算机信息系统罪、侵犯公民个人信息罪、掩饰、隐瞒犯罪所得罪,分别被判处有期徒刑八年至六个月不等。
案情回顾
2019年5月,广州市公安局南沙区分局在侦办一宗以婚恋交友诱骗投资的网络诈骗案中,发现了该以犯罪嫌疑人陈某展为首的制作、售卖以及使用“海贼王”系列软件的犯罪团伙。该局遂立案侦查,并于2019年8月抓获犯罪嫌疑人陈某展等人。
法院经审理查明,2018年3月,被告人陈某展为更加便捷地销售微信账号,遂让被告人陈某巍、王某帮其开发操作软件。被告人王某在被告人陈某巍提供的微信底层接口协议基础上,先后编写了“黑客数据助手”、“黑客检测助手”、“黑客销售助手”等系列软件。
2018年年底,被告人陈某展等人为牟取非法利益,将上述软件放在互联网上公开出售。2019年春节后,被告人陈某展为进一步扩大微信账号销售规模,将上述软件重新包装后更名为“海贼王”,由被告人王某制作官方下载网站,被告人杜某然制作广告图片、功能介绍视频后进行推广,并先后发展杜某然、梁某伦等人为代理进行销售。
经鉴定,“海贼王”系列软件具有挂机模式、一键删除好友、添加好友、修改朋友圈、一键洗白、检测账户封号、批量实名认证等功能,上述功能均是通过获取计算机信息系统中对应的数据实现。“海贼王”系列软件能够代替人工在微信界面的操作,实现对微信计算机信息系统的控制。
被告人陈某展、梁某伦等人为牟取非法利益,使用“海贼王”系列软件侵入并控制深圳腾讯计算机系统有限公司的计算机系统,批量登入他人微信账号,并进行检测、修改密码、实名认证等操作,非法获取微信账号数据,并向他人销售经“海贼王”软件处理的微信账号获利。
经司法审计,被告人陈某展销售“海贼王”系列软件共计2284个,销售金额共计人民币456905元,获利人民币427940元,其他14名被告人亦通过销售“海贼王”系列软件获利不等。
法官说法
南沙法院审理认为,根据审理查明的事实和证据,被告人陈某展、梁某伦等人无视国家法律,违反国家规定,提供专门用于侵入、非法控制计算机信息系统的程序、工具,侵入深圳腾讯计算机信息系统,获取计算机信息系统中的数据、且对腾讯计算机信息系统进行非法控制,向他人出售或非法获取公民个人信息,其行为均已触犯刑律,犯提供侵入、非法控制计算机信息系统程序、工具罪,非法获取计算机信息系统数据、非法控制计算机信息系统罪,侵犯公民个人信息罪,遂依法作出上述判决。
法官提示,类似本案中的微信外挂软件是黑产人员养号、卖号的重要工具,可以为实施网络诈骗等犯罪行为提供大量账号资源,这些外挂功能的出现是对恶意营销行为的纵容,对正常微信用户会造成骚扰和损失,危害严重。法院对于开发、销售非法软件的行为将依法予以惩处,从源头上遏制网络黑产的发展,守护网络安全,营造良好的网络环境。
【来源:广州市南沙区人民法院】,转载自公众号:牡丹江铁路运输法院,如有不当联系邮箱:pufa@dcloud.io 。
原文链接
3月31日,广州市南沙区人民法院公开宣判被告人陈某展等38人提供侵入、非法控制计算机信息系统程序、工具、非法获取计算机信息系统数据、非法控制计算机信息系统、侵犯公民个人信息、掩饰、隐瞒犯罪所得一案。
宣判现场
被告人梁某伦、陈某展犯提供侵入、非法控制计算机信息系统程序、工具罪、非法获取计算机信息系统数据、非法控制计算机信息系统罪、侵犯公民个人信息罪,数罪并罚,分别被判处有期徒刑十年、八年六个月,并处罚金人民币十一万六千元、十三万二千元,其余36名被告人犯提供侵入、非法控制计算机信息系统程序、工具罪、非法获取计算机信息系统数据、非法控制计算机信息系统罪、侵犯公民个人信息罪、掩饰、隐瞒犯罪所得罪,分别被判处有期徒刑八年至六个月不等。
案情回顾
2019年5月,广州市公安局南沙区分局在侦办一宗以婚恋交友诱骗投资的网络诈骗案中,发现了该以犯罪嫌疑人陈某展为首的制作、售卖以及使用“海贼王”系列软件的犯罪团伙。该局遂立案侦查,并于2019年8月抓获犯罪嫌疑人陈某展等人。
法院经审理查明,2018年3月,被告人陈某展为更加便捷地销售微信账号,遂让被告人陈某巍、王某帮其开发操作软件。被告人王某在被告人陈某巍提供的微信底层接口协议基础上,先后编写了“黑客数据助手”、“黑客检测助手”、“黑客销售助手”等系列软件。
2018年年底,被告人陈某展等人为牟取非法利益,将上述软件放在互联网上公开出售。2019年春节后,被告人陈某展为进一步扩大微信账号销售规模,将上述软件重新包装后更名为“海贼王”,由被告人王某制作官方下载网站,被告人杜某然制作广告图片、功能介绍视频后进行推广,并先后发展杜某然、梁某伦等人为代理进行销售。
经鉴定,“海贼王”系列软件具有挂机模式、一键删除好友、添加好友、修改朋友圈、一键洗白、检测账户封号、批量实名认证等功能,上述功能均是通过获取计算机信息系统中对应的数据实现。“海贼王”系列软件能够代替人工在微信界面的操作,实现对微信计算机信息系统的控制。
被告人陈某展、梁某伦等人为牟取非法利益,使用“海贼王”系列软件侵入并控制深圳腾讯计算机系统有限公司的计算机系统,批量登入他人微信账号,并进行检测、修改密码、实名认证等操作,非法获取微信账号数据,并向他人销售经“海贼王”软件处理的微信账号获利。
经司法审计,被告人陈某展销售“海贼王”系列软件共计2284个,销售金额共计人民币456905元,获利人民币427940元,其他14名被告人亦通过销售“海贼王”系列软件获利不等。
法官说法
南沙法院审理认为,根据审理查明的事实和证据,被告人陈某展、梁某伦等人无视国家法律,违反国家规定,提供专门用于侵入、非法控制计算机信息系统的程序、工具,侵入深圳腾讯计算机信息系统,获取计算机信息系统中的数据、且对腾讯计算机信息系统进行非法控制,向他人出售或非法获取公民个人信息,其行为均已触犯刑律,犯提供侵入、非法控制计算机信息系统程序、工具罪,非法获取计算机信息系统数据、非法控制计算机信息系统罪,侵犯公民个人信息罪,遂依法作出上述判决。
法官提示,类似本案中的微信外挂软件是黑产人员养号、卖号的重要工具,可以为实施网络诈骗等犯罪行为提供大量账号资源,这些外挂功能的出现是对恶意营销行为的纵容,对正常微信用户会造成骚扰和损失,危害严重。法院对于开发、销售非法软件的行为将依法予以惩处,从源头上遏制网络黑产的发展,守护网络安全,营造良好的网络环境。
【来源:广州市南沙区人民法院】,转载自公众号:牡丹江铁路运输法院,如有不当联系邮箱:pufa@dcloud.io 。
原文链接

oh,my god!剑指题解项目上线了!国内首款聚合程序题库小程序,快来围观吧~
<h2 align="center">剑指题解</h2>
<div align="center">
<img width="200" height="70" src="https://vkceyugu.cdn.bspapp.com/VKCEYUGU-c7e81452-9d28-4486-bedc-5dbf7c8386a5/5623bee6-39a4-4f4b-9fab-e31d245f214e.png"></img>
</div>
<p align="center">互联网人题解神器,神器在手,offer我有
<br>
随手刷题 | 无广告绿色免费 | 个性推荐 | 每日自动推送 | 多维度丰富领域知识
</p>
<div align="center">
<img src="https://img.shields.io/github/issues/swordCodePractice/InternetQuestionBank"></img>
<img src="https://img.shields.io/github/forks/swordCodePractice/InternetQuestionBank"></img>
<img src="https://img.shields.io/github/stars/swordCodePractice/InternetQuestionBank"></img>
<img src="https://img.shields.io/github/license/swordCodePractice/InternetQuestionBank"></img>
</div>
项目的起源是一个 github 仓库,名为前端知识每日 3+1,正是这个优秀的题库项目才有了我们团队开发聚合题库的想法。在我们国内程序员圈子,大多数小伙伴为了更好的技术发展和 offer,都通过训练题来提高自己的眼界,其中不乏包括算法/业务/软技能的题目,但是因为我们的环境和侧重点不一样,所以我们接触的项目和题目都不一样,而市面上很少有一个项目能做到,涵盖不同圈子的聚合题库。 《剑指题解》项目就是一个优秀的互联网行业聚合题库神器。
<img src="https://vkceyugu.cdn.bspapp.com/VKCEYUGU-c7e81452-9d28-4486-bedc-5dbf7c8386a5/c1746d60-2e22-4161-b23d-38b910b73c91.jpg" width="15%"><img style="margin-left: 40px;" src="https://vkceyugu.cdn.bspapp.com/VKCEYUGU-c7e81452-9d28-4486-bedc-5dbf7c8386a5/e4395033-d45f-4e3e-a930-78ff91c8db54.png" width="40%">
开源免费不易,请关注我们的公众号以及开源仓库
<br/>
Github点star, 拉取代码时请选择最新分支<br/>
Dcloud插件市场支持我们
目录
特点
- 汇聚优秀的开源题目,以技术社区为主线展开的刷题 APP
- 根据用户的喜好,去推送相关的最新题目,不会再刷到 “牛头不对马嘴”无用的题目
- 我们绑定了微信服务号,每日定时推送给用户最新的题目,让你能在每天清晨就开启活力新一天
- 刷题 APP 无广告,无硬性推广,一切盈利皆在赞助/官网流量
- 我们还有很多有意思的待开发 feature,比如大佬带萌新模式,还将开启校园/企业的通道,让每一个学生/员工都能每时每刻提高自己
- 剑指题解开源项目,从原型图到小程序,UI 图,UML,API 文档,第三方 API 对接说明书,使用说明都将免费开源,欢迎各位同僚二开,让这个行业变得更好,我们将用心地辅助你们解决在技术上的难题。
技术栈
关于技术栈的选型可以参考我们的语雀文档
周边物料的开源,还需要感谢 mockPlus 以及语雀:
<div>
<a href="https://www.mockplus.cn/">
<img class="imgIcon" src="http://static.yinzhuoei.com/typecho/2021/01/17/69752764374919.png" width="10%">
</a>
<a href="https://www.yuque.com/">
<img class="imgIcon" src="http://static.yinzhuoei.com/typecho/2021/01/17/697832282748067.jpg" width="20%"></img>
</a>
</div>
UML
由于此部分在开发新 feature 的工作中可能会进行变更或者本就有实质性的错误,欢迎向我们反馈错误,我们将感激不尽。
类图
<img src="https://github.com/swordCodePractice/InternetQuestionBank/blob/v1.0.0-dev/out/doc/db/core/core.png?raw=true"></img>
拉取任务
<div align=center>
<img src="https://github.com/swordCodePractice/InternetQuestionBank/blob/v1.0.0-dev/out/doc/db/pull/pull.png?raw=true"></img>
</div>
更多
更多相关资料请移步
out/doc
或者语雀-UML
设计概览
<div>
<img src="https://vkceyugu.cdn.bspapp.com/VKCEYUGU-c7e81452-9d28-4486-bedc-5dbf7c8386a5/634202cd-6b93-4712-9cfc-4141b535a8aa.png" width="25%"></img>
<img src="http://static.yinzhuoei.com/typecho/2021/01/17/721852972570223.png" width="30%"></img>
<img src="http://static.yinzhuoei.com/typecho/2021/01/17/72195918714747.png" width="30%"></img>
</div>
设计源文件请移步:点击查看-为了您的体验,请务必下载最新版本的设计图
API
《剑指题解》团队在 API 层面,开源的内容非常有限制,因为涉及到多位合作伙伴的题库授权,所以如果您要使用聚合题库 API 请联系我们商议,如果您是学习者,那么在语雀中的 API 文档会帮助到您,在这里我们将简单介绍。
uniapp 的云函数开发,我们是第一次接触,所以在此之前我们做了很多调研,在下文也提到了关于 explain.js 这个框架的作用,我们也是非常感谢 uniapp 开源社区有这样创作质量的第一批的 unicloud 框架开发者,在咨询了官方人员之后,我们了解到如果要使用 ts 来开发,需要把 ts 编译成 js 来放在云函数目录,所以我们选择了以下的技术栈,开发者可以很爽的使用 ts 来开发 unicloud 云函数:
- esbuild-node-tsc
- nodemon
esbuild-node-tsc 这个工具是基于 esbuild 的,利用其特性,我们可以比 ts 官方提出的 tsc 编译工具更快,快几十倍到上百倍,这也是得益于 esbuild 的使用 go 语言直接编译的特性。
nodemon 可以帮助我们监听目录文件,一旦改变就执行打包 ts 命令直接将编译好的 js 放在指定目录
所以我们把 explain.js 的配置也相应的改变,我们在 services 目录中存储的是我们 ts 文件,在 dist 中存储的是我们编译好的 js 文件,而 dist 目录就是 explain 需要的:
config.init({
baseDir: __dirname,
serviceDir: "/dist/",
});
需要注意的事情是:
由于云函数大小限制,我们需要把相关依赖全部安装到全局,包括 typescript
读写职责分离
读写职责分离模式(CQRS)是一种把查询(Queries) 数据和和更新(Commands) 数据通过使用各自独立的接口分开的模式。
Uniapp 的 Unicloud 很好,其中的 jql 也是大开眼界,确实统一了前端开发操作数据库的体验,让我们前端开发操作数据库非常友好,但是我们使用 CQRS 将这些原本封装的很好的 API 不予以使用。
- 前端使用 jql 去读取想要的数据
- 写入操作就交给云函数去执行
如图,前端读取一个列表数据
const db = uniCloud.database();
const databaseName = "testInit";
// 获取测试数据列表
export function getTestList() {
return new Promise((resolve) => {
db.collection(databaseName)
.get()
.then((res) => {
// res 为数据库查询结果
resolve(res);
})
.catch((err) => {
// err.message 错误信息
// err.code 错误码
});
});
}
我们将这样的文件抽出了一个一个查询模块,每一个模块对应了一个数据表(这里是 testInit)封装在了 API 这个文件夹中。
<img src="https://cdn.nlark.com/yuque/0/2020/png/710380/1604849161872-36fc9bd2-1988-430c-9f75-d8b989782737.png?x-oss-process=image%2Fresize%2Cw_513"></img>
Vue 页面将这样去调用,这样我们在 API 查询层将做好数据的处理,确保 Vue 拿到的是可以直接渲染的干净数据。
import { getTestList } from "../../api/test";
const data = getTestList();
我们写入操作将通过云函数直接调用,唯一设计不同的地方在于,我们将云函数这个概念改变了,应该是模块化,我们把一个一个函数变成了模块。
在我们的初步技术调研过程中,由于 Uni 官方并没有提供给用户云函数开发框架,但是我们在插件市场中找到了一款名为 explain 的开发框架,它可以迅速的帮助我们实现 restapi 风格的单路由云函数,这款框架我们不多做介绍,文档在这里:explain.js 快速开发 uni 云函数的框架
// 注册用户根据手机号
addUserByPhone() {
return handleMustRequireParam(
[{
key: "username",
value: "用户名",
},
{
key: "password",
value: "密码",
},
],
this.event.params
)
.then(async () => {
const {
username,
password
} = this.event.params;
if (!/^1[3456789]\d{9}$/.test(username)) {
return appErrorMessage("用户名格式不正确");
} else if (password === "" || password.length < 6) {
return appErrorMessage("密码格式不正确");
} else {
// 校验手机号
return await uniID.register({
username,
password,
});
}
})
.catch((err) => {
return err;
});
}
那么我们如果要调用 testPrint 这个模块中的增加操作
uniCloud.callFunction({
name: "application",
data: {
route: "api/user",
method: "POST",
params: {
username: "18291563764",
password: "sas",
},
},
});
贡献者
感谢为《剑指题解》这个优秀项目贡献自己一份力的小伙伴们:
<table><tbody>
<tr><td><a target="_blank" href="https://github.com/1018715564"><img width="60px" src="https://avatars1.githubusercontent.com/u/35763284?s=460&u=018d91407ac17ac3b6abbd16cdca5b080b385b32&v=4"></a></td>
<td><a target="_blank" href="https://github.com/maruichao52"><img width="60px" src="https://avatars0.githubusercontent.com/u/41415464?s=460&u=4e8e3f255ba143921d7eb3489cdb1be0ee4cbf4c&v=4"></a></td>
<td><a target="_blank" href="https://github.com/githubbfw"><img width="60px" src="https://avatars3.githubusercontent.com/u/20768069?s=460&u=2b274b4c5c123e727cad136e52ed116507e1c8f7&v=4"></a></td>
</tr></tbody></table>
如果您想加入到我们的贡献者队列中,请联系我们,这里还有相关贡献者的介绍,希望对您有帮助
核心维护者
- @Seho: 负责前端和后端的开发,产品设计,以及产品的市场调研还有相关社区维护宣传
- @maruichao52:负责后端开发工作以及后端分析工作以及社区维护宣传
- @Maria ^敏:APPUI,以及相关宣传物料等设计工作,设计相关合作请加微信:P309033661 备注:剑指题解
相关开源物料
题库合作伙伴
联系我们
<img width="30%" src="https://vkceyugu.cdn.bspapp.com/VKCEYUGU-c7e81452-9d28-4486-bedc-5dbf7c8386a5/309debe7-7f2a-47ae-a415-875e5b1f4922.jpg"></img>
许可
Apache License © 剑指题解
如果您在其他有关我们的文档见到了与之不符合的协议内容,请联系我们,这可能是我们的历史遗留的代码问题。
<h2 align="center">剑指题解</h2>
<div align="center">
<img width="200" height="70" src="https://vkceyugu.cdn.bspapp.com/VKCEYUGU-c7e81452-9d28-4486-bedc-5dbf7c8386a5/5623bee6-39a4-4f4b-9fab-e31d245f214e.png"></img>
</div>
<p align="center">互联网人题解神器,神器在手,offer我有
<br>
随手刷题 | 无广告绿色免费 | 个性推荐 | 每日自动推送 | 多维度丰富领域知识
</p>
<div align="center">
<img src="https://img.shields.io/github/issues/swordCodePractice/InternetQuestionBank"></img>
<img src="https://img.shields.io/github/forks/swordCodePractice/InternetQuestionBank"></img>
<img src="https://img.shields.io/github/stars/swordCodePractice/InternetQuestionBank"></img>
<img src="https://img.shields.io/github/license/swordCodePractice/InternetQuestionBank"></img>
</div>
项目的起源是一个 github 仓库,名为前端知识每日 3+1,正是这个优秀的题库项目才有了我们团队开发聚合题库的想法。在我们国内程序员圈子,大多数小伙伴为了更好的技术发展和 offer,都通过训练题来提高自己的眼界,其中不乏包括算法/业务/软技能的题目,但是因为我们的环境和侧重点不一样,所以我们接触的项目和题目都不一样,而市面上很少有一个项目能做到,涵盖不同圈子的聚合题库。 《剑指题解》项目就是一个优秀的互联网行业聚合题库神器。
<img src="https://vkceyugu.cdn.bspapp.com/VKCEYUGU-c7e81452-9d28-4486-bedc-5dbf7c8386a5/c1746d60-2e22-4161-b23d-38b910b73c91.jpg" width="15%"><img style="margin-left: 40px;" src="https://vkceyugu.cdn.bspapp.com/VKCEYUGU-c7e81452-9d28-4486-bedc-5dbf7c8386a5/e4395033-d45f-4e3e-a930-78ff91c8db54.png" width="40%">
开源免费不易,请关注我们的公众号以及开源仓库
<br/>
Github点star, 拉取代码时请选择最新分支<br/>
Dcloud插件市场支持我们
目录
特点
- 汇聚优秀的开源题目,以技术社区为主线展开的刷题 APP
- 根据用户的喜好,去推送相关的最新题目,不会再刷到 “牛头不对马嘴”无用的题目
- 我们绑定了微信服务号,每日定时推送给用户最新的题目,让你能在每天清晨就开启活力新一天
- 刷题 APP 无广告,无硬性推广,一切盈利皆在赞助/官网流量
- 我们还有很多有意思的待开发 feature,比如大佬带萌新模式,还将开启校园/企业的通道,让每一个学生/员工都能每时每刻提高自己
- 剑指题解开源项目,从原型图到小程序,UI 图,UML,API 文档,第三方 API 对接说明书,使用说明都将免费开源,欢迎各位同僚二开,让这个行业变得更好,我们将用心地辅助你们解决在技术上的难题。
技术栈
关于技术栈的选型可以参考我们的语雀文档
周边物料的开源,还需要感谢 mockPlus 以及语雀:
<div>
<a href="https://www.mockplus.cn/">
<img class="imgIcon" src="http://static.yinzhuoei.com/typecho/2021/01/17/69752764374919.png" width="10%">
</a>
<a href="https://www.yuque.com/">
<img class="imgIcon" src="http://static.yinzhuoei.com/typecho/2021/01/17/697832282748067.jpg" width="20%"></img>
</a>
</div>
UML
由于此部分在开发新 feature 的工作中可能会进行变更或者本就有实质性的错误,欢迎向我们反馈错误,我们将感激不尽。
类图
<img src="https://github.com/swordCodePractice/InternetQuestionBank/blob/v1.0.0-dev/out/doc/db/core/core.png?raw=true"></img>
拉取任务
<div align=center>
<img src="https://github.com/swordCodePractice/InternetQuestionBank/blob/v1.0.0-dev/out/doc/db/pull/pull.png?raw=true"></img>
</div>
更多
更多相关资料请移步
out/doc
或者语雀-UML
设计概览
<div>
<img src="https://vkceyugu.cdn.bspapp.com/VKCEYUGU-c7e81452-9d28-4486-bedc-5dbf7c8386a5/634202cd-6b93-4712-9cfc-4141b535a8aa.png" width="25%"></img>
<img src="http://static.yinzhuoei.com/typecho/2021/01/17/721852972570223.png" width="30%"></img>
<img src="http://static.yinzhuoei.com/typecho/2021/01/17/72195918714747.png" width="30%"></img>
</div>
设计源文件请移步:点击查看-为了您的体验,请务必下载最新版本的设计图
API
《剑指题解》团队在 API 层面,开源的内容非常有限制,因为涉及到多位合作伙伴的题库授权,所以如果您要使用聚合题库 API 请联系我们商议,如果您是学习者,那么在语雀中的 API 文档会帮助到您,在这里我们将简单介绍。
uniapp 的云函数开发,我们是第一次接触,所以在此之前我们做了很多调研,在下文也提到了关于 explain.js 这个框架的作用,我们也是非常感谢 uniapp 开源社区有这样创作质量的第一批的 unicloud 框架开发者,在咨询了官方人员之后,我们了解到如果要使用 ts 来开发,需要把 ts 编译成 js 来放在云函数目录,所以我们选择了以下的技术栈,开发者可以很爽的使用 ts 来开发 unicloud 云函数:
- esbuild-node-tsc
- nodemon
esbuild-node-tsc 这个工具是基于 esbuild 的,利用其特性,我们可以比 ts 官方提出的 tsc 编译工具更快,快几十倍到上百倍,这也是得益于 esbuild 的使用 go 语言直接编译的特性。
nodemon 可以帮助我们监听目录文件,一旦改变就执行打包 ts 命令直接将编译好的 js 放在指定目录
所以我们把 explain.js 的配置也相应的改变,我们在 services 目录中存储的是我们 ts 文件,在 dist 中存储的是我们编译好的 js 文件,而 dist 目录就是 explain 需要的:
config.init({
baseDir: __dirname,
serviceDir: "/dist/",
});
需要注意的事情是:
由于云函数大小限制,我们需要把相关依赖全部安装到全局,包括 typescript
读写职责分离
读写职责分离模式(CQRS)是一种把查询(Queries) 数据和和更新(Commands) 数据通过使用各自独立的接口分开的模式。
Uniapp 的 Unicloud 很好,其中的 jql 也是大开眼界,确实统一了前端开发操作数据库的体验,让我们前端开发操作数据库非常友好,但是我们使用 CQRS 将这些原本封装的很好的 API 不予以使用。
- 前端使用 jql 去读取想要的数据
- 写入操作就交给云函数去执行
如图,前端读取一个列表数据
const db = uniCloud.database();
const databaseName = "testInit";
// 获取测试数据列表
export function getTestList() {
return new Promise((resolve) => {
db.collection(databaseName)
.get()
.then((res) => {
// res 为数据库查询结果
resolve(res);
})
.catch((err) => {
// err.message 错误信息
// err.code 错误码
});
});
}
我们将这样的文件抽出了一个一个查询模块,每一个模块对应了一个数据表(这里是 testInit)封装在了 API 这个文件夹中。
<img src="https://cdn.nlark.com/yuque/0/2020/png/710380/1604849161872-36fc9bd2-1988-430c-9f75-d8b989782737.png?x-oss-process=image%2Fresize%2Cw_513"></img>
Vue 页面将这样去调用,这样我们在 API 查询层将做好数据的处理,确保 Vue 拿到的是可以直接渲染的干净数据。
import { getTestList } from "../../api/test";
const data = getTestList();
我们写入操作将通过云函数直接调用,唯一设计不同的地方在于,我们将云函数这个概念改变了,应该是模块化,我们把一个一个函数变成了模块。
在我们的初步技术调研过程中,由于 Uni 官方并没有提供给用户云函数开发框架,但是我们在插件市场中找到了一款名为 explain 的开发框架,它可以迅速的帮助我们实现 restapi 风格的单路由云函数,这款框架我们不多做介绍,文档在这里:explain.js 快速开发 uni 云函数的框架
// 注册用户根据手机号
addUserByPhone() {
return handleMustRequireParam(
[{
key: "username",
value: "用户名",
},
{
key: "password",
value: "密码",
},
],
this.event.params
)
.then(async () => {
const {
username,
password
} = this.event.params;
if (!/^1[3456789]\d{9}$/.test(username)) {
return appErrorMessage("用户名格式不正确");
} else if (password === "" || password.length < 6) {
return appErrorMessage("密码格式不正确");
} else {
// 校验手机号
return await uniID.register({
username,
password,
});
}
})
.catch((err) => {
return err;
});
}
那么我们如果要调用 testPrint 这个模块中的增加操作
uniCloud.callFunction({
name: "application",
data: {
route: "api/user",
method: "POST",
params: {
username: "18291563764",
password: "sas",
},
},
});
贡献者
感谢为《剑指题解》这个优秀项目贡献自己一份力的小伙伴们:
<table><tbody>
<tr><td><a target="_blank" href="https://github.com/1018715564"><img width="60px" src="https://avatars1.githubusercontent.com/u/35763284?s=460&u=018d91407ac17ac3b6abbd16cdca5b080b385b32&v=4"></a></td>
<td><a target="_blank" href="https://github.com/maruichao52"><img width="60px" src="https://avatars0.githubusercontent.com/u/41415464?s=460&u=4e8e3f255ba143921d7eb3489cdb1be0ee4cbf4c&v=4"></a></td>
<td><a target="_blank" href="https://github.com/githubbfw"><img width="60px" src="https://avatars3.githubusercontent.com/u/20768069?s=460&u=2b274b4c5c123e727cad136e52ed116507e1c8f7&v=4"></a></td>
</tr></tbody></table>
如果您想加入到我们的贡献者队列中,请联系我们,这里还有相关贡献者的介绍,希望对您有帮助
核心维护者
- @Seho: 负责前端和后端的开发,产品设计,以及产品的市场调研还有相关社区维护宣传
- @maruichao52:负责后端开发工作以及后端分析工作以及社区维护宣传
- @Maria ^敏:APPUI,以及相关宣传物料等设计工作,设计相关合作请加微信:P309033661 备注:剑指题解
相关开源物料
题库合作伙伴
联系我们
<img width="30%" src="https://vkceyugu.cdn.bspapp.com/VKCEYUGU-c7e81452-9d28-4486-bedc-5dbf7c8386a5/309debe7-7f2a-47ae-a415-875e5b1f4922.jpg"></img>
许可
Apache License © 剑指题解
如果您在其他有关我们的文档见到了与之不符合的协议内容,请联系我们,这可能是我们的历史遗留的代码问题。

mui中的遍历each
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搭建的一套基础模板内置了
- tailwindcss以及flex布局的css工具拓展
- 基本的列表和表单demo
- 统一的request api请求处理,枚举与正则校验
背景:之前用uniapp
+uview
开发了一大一小两个小程序,css
方案用的原子风格的,发现用的还是挺爽的,就在想能不能用上tailwindcss
,研究之后发现用Hbuilder
创建的自由度比较低,于是选择了用Vue-cli4
搭建了一套。
要求:
1. Node.js > 12
项目地址
预览
https://i0.hdslb.com/bfs/album/0eabcc1cbdead3a5a98662ef2757760af6280bc5.png
利用uniapp+tailwindcss+uview搭建的一套基础模板内置了
- tailwindcss以及flex布局的css工具拓展
- 基本的列表和表单demo
- 统一的request api请求处理,枚举与正则校验
背景:之前用uniapp
+uview
开发了一大一小两个小程序,css
方案用的原子风格的,发现用的还是挺爽的,就在想能不能用上tailwindcss
,研究之后发现用Hbuilder
创建的自由度比较低,于是选择了用Vue-cli4
搭建了一套。
要求:
1. Node.js > 12
项目地址
预览
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如何分栏?
大家在设计网页时为了达到更好的显示效果,一般都会使用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属性
第六步,再次保存代码并刷新浏览器,可以看到界面出现了 分栏
收起阅读 »