HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

喜大普奔,nvue项目全局浮窗功能已实现,非原生插件方案,可实现贴边、跟手移动、全项目任意位置通过js显示、隐藏、销毁、创建

方法文档正在整理中,顺便谁能给我解决下我这个问题https://ask.dcloud.net.cn/question/164176

方法文档正在整理中,顺便谁能给我解决下我这个问题https://ask.dcloud.net.cn/question/164176

免费苹果ios在线签名工具

移动APP Apple证书 App打包 App云端打包 工具 签名 iOS证书 iOS打包

支持功能:
1.支持在线签名操作
2.支持修改ipa包的名字
3.支持修ipa包的bundle identifier
4.支持去锁ipa包多余动态库即时间锁
5.支持ipa免费分发下载
6.支持windows和mac平台环境

访问地址:
https://sign.ipasign.cc

继续阅读 »

支持功能:
1.支持在线签名操作
2.支持修改ipa包的名字
3.支持修ipa包的bundle identifier
4.支持去锁ipa包多余动态库即时间锁
5.支持ipa免费分发下载
6.支持windows和mac平台环境

访问地址:
https://sign.ipasign.cc

收起阅读 »

unicloud 云函数+云数据库+跨域设置 编写后端接口

api uniCloud

云数据库book表数据:
> [
{
"_id": "642a492fcec29b27678be375",
"author": "松鼠200",
"bookid": 4,
"des": "一个是叱咤仙路的风云上神.一个是废材资质修真菜鸟.当网游遭遇修真.还有什么是不可能的呢?昔日等级榜第一大神跌落云端.废柴医师掉进修真世界。小小菜鸟又该如何一步一个脚印.攀上这云海尽头.苍岚之巅?萌兽or美男?仙术or神通?丹药or法宝?修真菜鸟的逆袭日记从现在开始书写!即使大道无情.艰险丛生.萌妹子也要闯出一片天!",
"img": "/upload/book/4.jpg",
"name": "风起苍岚",
"status": "连载中",
"tag": "修真$热血$玄幻$",
"uptime": "2023/4/2"
}
]
云函数getbookdetail:
> 'use strict';
const db = uniCloud.database()
exports.main = async (event, context) => {
//event为客户端上传的参数
var bookid=parseInt(event.queryStringParameters.bookid)
if(!event.queryStringParameters.bookid){
var string='bookid不可为空'
}else{
const collection = db.collection('book')
var string =collection.where({bookid:bookid}).get()
}
const res=string
return res
//返回数据给客户端
};
返回的数据如下:
{
"affectedDocs":1,"data":
[
{
"_id":"642a492fcec29b27678be375",
"bookid":4,
"name":"风起苍岚",
"des":"一个是叱咤仙路的风云上神.一个是废材资质修真菜鸟.当网游遭遇修真.还有什么是不可能的呢?昔日等级榜第一大神跌落云端.废柴医师掉进修真世界。小小菜鸟又该如何一步一个脚印.攀上这云海尽头.苍岚之巅?萌兽or美男?仙术or神通?丹药or法宝?修真菜鸟的逆袭日记从现在开始书写!即使大道无情.艰险丛生.萌妹子也要闯出一片天!",
"img":"/upload/book/4.jpg",
"tag":"修真$热血$玄幻$",
"status":"连载中",
"uptime":"2023/4/2",
"author":"松鼠200"
}
]
}

继续阅读 »

云数据库book表数据:
> [
{
"_id": "642a492fcec29b27678be375",
"author": "松鼠200",
"bookid": 4,
"des": "一个是叱咤仙路的风云上神.一个是废材资质修真菜鸟.当网游遭遇修真.还有什么是不可能的呢?昔日等级榜第一大神跌落云端.废柴医师掉进修真世界。小小菜鸟又该如何一步一个脚印.攀上这云海尽头.苍岚之巅?萌兽or美男?仙术or神通?丹药or法宝?修真菜鸟的逆袭日记从现在开始书写!即使大道无情.艰险丛生.萌妹子也要闯出一片天!",
"img": "/upload/book/4.jpg",
"name": "风起苍岚",
"status": "连载中",
"tag": "修真$热血$玄幻$",
"uptime": "2023/4/2"
}
]
云函数getbookdetail:
> 'use strict';
const db = uniCloud.database()
exports.main = async (event, context) => {
//event为客户端上传的参数
var bookid=parseInt(event.queryStringParameters.bookid)
if(!event.queryStringParameters.bookid){
var string='bookid不可为空'
}else{
const collection = db.collection('book')
var string =collection.where({bookid:bookid}).get()
}
const res=string
return res
//返回数据给客户端
};
返回的数据如下:
{
"affectedDocs":1,"data":
[
{
"_id":"642a492fcec29b27678be375",
"bookid":4,
"name":"风起苍岚",
"des":"一个是叱咤仙路的风云上神.一个是废材资质修真菜鸟.当网游遭遇修真.还有什么是不可能的呢?昔日等级榜第一大神跌落云端.废柴医师掉进修真世界。小小菜鸟又该如何一步一个脚印.攀上这云海尽头.苍岚之巅?萌兽or美男?仙术or神通?丹药or法宝?修真菜鸟的逆袭日记从现在开始书写!即使大道无情.艰险丛生.萌妹子也要闯出一片天!",
"img":"/upload/book/4.jpg",
"tag":"修真$热血$玄幻$",
"status":"连载中",
"uptime":"2023/4/2",
"author":"松鼠200"
}
]
}

收起阅读 »

牛蛙,某平台,能把我简书文章直接强制封锁?就因为说了实话?

首先本人于22年4月份发布了一篇关于平台的使用建议文章,历时一年由于点击量过高,排名在百度搜索前3名,从而被平台官方盯上了,原因是我写的文章有针对平台的使用的问题进行了说明和建议,说白了就是官方看不惯我说他们一点不好,首先文章是很客观的,也是包含了本人使用的亲身经历和实际发生的问题,为此于2023年3月31日,平台官方人员私自查用了我的私人手机号,并打电话沟通之前我发布的问题(之前2年前发布的问题都没有这么主动),电话语气十分不屑,官方说是为了沟通问题,但是我用了两年多了,没见过一次打电话,直到官方最后说出了真实用意,让我删除某书上的文章(就是前面提到的建议文章), 我也是没多理会没有时间和这个平台纠缠,隔日我看到平台我发布的问题官方人员进行了回复,目的很明确也是让我删除帖子,然后当天我的文章被百度关闭了推荐,4月4日简书封锁了我的文章,文章阅读量不多2700左右,受到官方重视我也是很荣幸。

情况就是这样,令我吃惊的是平台的营销和公关手段,比他们的平台做的要好不知道几倍,本来我看百度推广下了就下了,无所谓但是你们有点太欺负人了,文章直接给我封锁?怎么我说的某些点,戳到他们的痛楚了?亲身经历你和我说我发的东西不属实,既然这样我们客户很多,平台的客户也有很多,况且我不忙的时候会照顾下他们。

我可能干不过一个《大平台》,但是我有我坚持的底线和原则,用户提出问题应该去解决找方案,而不是这样做,我很少黑任何东西和人,但是平台确实过分,以后我也不会黑了,我会一五一十的说实话,把这些经历分享给大家,好看清某些平台的嘴脸。

声明 本帖子不涉及任何dcloud官方的东西,文章所指为其他平台。

继续阅读 »

首先本人于22年4月份发布了一篇关于平台的使用建议文章,历时一年由于点击量过高,排名在百度搜索前3名,从而被平台官方盯上了,原因是我写的文章有针对平台的使用的问题进行了说明和建议,说白了就是官方看不惯我说他们一点不好,首先文章是很客观的,也是包含了本人使用的亲身经历和实际发生的问题,为此于2023年3月31日,平台官方人员私自查用了我的私人手机号,并打电话沟通之前我发布的问题(之前2年前发布的问题都没有这么主动),电话语气十分不屑,官方说是为了沟通问题,但是我用了两年多了,没见过一次打电话,直到官方最后说出了真实用意,让我删除某书上的文章(就是前面提到的建议文章), 我也是没多理会没有时间和这个平台纠缠,隔日我看到平台我发布的问题官方人员进行了回复,目的很明确也是让我删除帖子,然后当天我的文章被百度关闭了推荐,4月4日简书封锁了我的文章,文章阅读量不多2700左右,受到官方重视我也是很荣幸。

情况就是这样,令我吃惊的是平台的营销和公关手段,比他们的平台做的要好不知道几倍,本来我看百度推广下了就下了,无所谓但是你们有点太欺负人了,文章直接给我封锁?怎么我说的某些点,戳到他们的痛楚了?亲身经历你和我说我发的东西不属实,既然这样我们客户很多,平台的客户也有很多,况且我不忙的时候会照顾下他们。

我可能干不过一个《大平台》,但是我有我坚持的底线和原则,用户提出问题应该去解决找方案,而不是这样做,我很少黑任何东西和人,但是平台确实过分,以后我也不会黑了,我会一五一十的说实话,把这些经历分享给大家,好看清某些平台的嘴脸。

声明 本帖子不涉及任何dcloud官方的东西,文章所指为其他平台。

收起阅读 »

深圳公司招聘uni-app开发

招聘

任职要求:
1.熟练使用uni-app 与 编辑器HBuilderX
2.熟练掌握Vue、js和熟悉工具链(例如webpack、npm)
3.熟练使用sass/css完成页面布局,交互动画
4.熟练使用git完成团队协作开发

岗位职责:
1.自研项目日常维护与开发(App、H5、小程序)
2.管理后台的日常维护与开发(vue-admin)
3.构建高效、可复用、可拓展的组件,优化冗余代码

入职条件:

  1. 只看能力,不看年龄、经历、性別(学历要求本科或以上)
  2. 能独立完成开发工作
  3. 有uniapp开发App经验优先考虑,有功能优化经验、重构经验优先考虑
  4. 熟悉: UI设计/小程序/原生开发/ES6/TypeScript 优先考虑

工作时间:
09:30~19:00
午休:12:30~14:00
周末双休、放假按法定假日

福利:

  1. 五险一金
  2. 定期非强制性团队活动
  3. 带薪年假以及劳动法规定的所有情况

本公司采取较开明的政策,在各方面都给予员工比较大的自由度,让每位员工都保有最大的发挥和成长空间,不仅可以就不同的公司事项提出有影响力的意见,也可以自行选择参与不同的公司事项,不乏晋升机会且发展潜力巨大。

继续阅读 »

任职要求:
1.熟练使用uni-app 与 编辑器HBuilderX
2.熟练掌握Vue、js和熟悉工具链(例如webpack、npm)
3.熟练使用sass/css完成页面布局,交互动画
4.熟练使用git完成团队协作开发

岗位职责:
1.自研项目日常维护与开发(App、H5、小程序)
2.管理后台的日常维护与开发(vue-admin)
3.构建高效、可复用、可拓展的组件,优化冗余代码

入职条件:

  1. 只看能力,不看年龄、经历、性別(学历要求本科或以上)
  2. 能独立完成开发工作
  3. 有uniapp开发App经验优先考虑,有功能优化经验、重构经验优先考虑
  4. 熟悉: UI设计/小程序/原生开发/ES6/TypeScript 优先考虑

工作时间:
09:30~19:00
午休:12:30~14:00
周末双休、放假按法定假日

福利:

  1. 五险一金
  2. 定期非强制性团队活动
  3. 带薪年假以及劳动法规定的所有情况

本公司采取较开明的政策,在各方面都给予员工比较大的自由度,让每位员工都保有最大的发挥和成长空间,不仅可以就不同的公司事项提出有影响力的意见,也可以自行选择参与不同的公司事项,不乏晋升机会且发展潜力巨大。

收起阅读 »

vue自定义输入框输入长度限制

自定义 Vue

在不使用maxlength属性的情况下,如何自定义输入框输入长度限制
可以使用input事件,但是注意在输入中文时,会出问题,
就是在输入汉字时,tartget.value会出现j'han's'df'e'这种,会影响判断,
如何解决呢?

使用watch监听。

使用计算属性。

使用原生JS的compositionstart和compositionend事件。

compositionstart,事件触发于一段文字的输入之前(类似于 keydown 事件,但是该事件仅在若干可见字符的输入之前,而这些可见字符的输入可能需要一连串的键盘操作、语音识别或者点击输入法的备选词)。

compositionend,当文本段落的组成完成或取消时, compositionend 事件将被激发 (具有特殊字符的激发, 需要一系列键和其他输入, 如语音识别或移动中的字词建议)。

使用过滤器(filter)。

继续阅读 »

在不使用maxlength属性的情况下,如何自定义输入框输入长度限制
可以使用input事件,但是注意在输入中文时,会出问题,
就是在输入汉字时,tartget.value会出现j'han's'df'e'这种,会影响判断,
如何解决呢?

使用watch监听。

使用计算属性。

使用原生JS的compositionstart和compositionend事件。

compositionstart,事件触发于一段文字的输入之前(类似于 keydown 事件,但是该事件仅在若干可见字符的输入之前,而这些可见字符的输入可能需要一连串的键盘操作、语音识别或者点击输入法的备选词)。

compositionend,当文本段落的组成完成或取消时, compositionend 事件将被激发 (具有特殊字符的激发, 需要一系列键和其他输入, 如语音识别或移动中的字词建议)。

使用过滤器(filter)。

收起阅读 »

nvue中,uviewui字体图标ttf字体名iconfont与项目其他字体冲突,解决方法

使用软件修改了原字体文件全名,改成了uviewui_iconfont, 有需要的朋友拿去用吧。

我是在/uni_modules/uview-ui/components/u-icon/u-icon.vue中把引入url改成了我修改后的字体的base64,当然大家也可以自行将ttf上传自己的服务器后使用网络地址引用。

继续阅读 »

使用软件修改了原字体文件全名,改成了uviewui_iconfont, 有需要的朋友拿去用吧。

我是在/uni_modules/uview-ui/components/u-icon/u-icon.vue中把引入url改成了我修改后的字体的base64,当然大家也可以自行将ttf上传自己的服务器后使用网络地址引用。

收起阅读 »

关于多端小程序各部分(状态栏/标题栏/导航栏/安全条)尺寸计算的方法

uniapp 多端发布 小程序

当小程序用于多端的时候,对于某些设计,可能需要对各部分的尺寸进行精确计算。
下面就讨论一下这方面的计算方法。

可以直接获取的参数(各家小程序都支持的)
statusBarHeight

部分小程序支持或支持不好的参数
titleBarHeight(支付宝小程序)
navigationBarHeight(百度小程序)
getMenuButtonBoundingClientRect(各家小程序都支持,但是部分小程序存在有时候获取不到的问题,所以可以加一个延时获取的方法)
safeArea/safeAreaInsets 安全区数据(QQ小程序没有)

另外,已知支付宝小程序和头条小程序不支持完全自定义导航栏

下面开始计算
statusBarHeight已知,不需计算
tabBar因为可以完全自定义,这里就不参与计算了。

safeAreasafeBottom
这个可以直接获取,一般的小程序都是safeAreaInsets.bottom
支付宝小程序参数有时候是safeArea.bottom有时候是safeAreaInsets.bottom
另外,QQ小程序没有,用0即可。

关于titleBarHeight

支付宝直接获取,百度可以用navigationBarHeight-statusBarHeight
QQ/微信可以用胶囊位置搭配statusBarHeight获取,具体计算方法是:
胶囊高度+2*(胶囊顶部-statusBarHeight)
这种方法在自定义导航栏模式( "navigationStyle": "custom",)下可行。
但头条小程序不支持完整的自定义导航,暂时没找到方法精确计算标题栏高度,只能根据胶囊位置算一个大概值。
如果哪位大神知道可以计算的方法,望告知。

页面内容区域
QQ/微信 因为全部可以自定义,所以是整个screenHeight
支付宝可以用screenHeight-statusBarHeight-statusBarHeight
其他的类似,但是头条的因为titleBarHeight算不出来,也没有具体给定,暂时没法计算。

继续阅读 »

当小程序用于多端的时候,对于某些设计,可能需要对各部分的尺寸进行精确计算。
下面就讨论一下这方面的计算方法。

可以直接获取的参数(各家小程序都支持的)
statusBarHeight

部分小程序支持或支持不好的参数
titleBarHeight(支付宝小程序)
navigationBarHeight(百度小程序)
getMenuButtonBoundingClientRect(各家小程序都支持,但是部分小程序存在有时候获取不到的问题,所以可以加一个延时获取的方法)
safeArea/safeAreaInsets 安全区数据(QQ小程序没有)

另外,已知支付宝小程序和头条小程序不支持完全自定义导航栏

下面开始计算
statusBarHeight已知,不需计算
tabBar因为可以完全自定义,这里就不参与计算了。

safeAreasafeBottom
这个可以直接获取,一般的小程序都是safeAreaInsets.bottom
支付宝小程序参数有时候是safeArea.bottom有时候是safeAreaInsets.bottom
另外,QQ小程序没有,用0即可。

关于titleBarHeight

支付宝直接获取,百度可以用navigationBarHeight-statusBarHeight
QQ/微信可以用胶囊位置搭配statusBarHeight获取,具体计算方法是:
胶囊高度+2*(胶囊顶部-statusBarHeight)
这种方法在自定义导航栏模式( "navigationStyle": "custom",)下可行。
但头条小程序不支持完整的自定义导航,暂时没找到方法精确计算标题栏高度,只能根据胶囊位置算一个大概值。
如果哪位大神知道可以计算的方法,望告知。

页面内容区域
QQ/微信 因为全部可以自定义,所以是整个screenHeight
支付宝可以用screenHeight-statusBarHeight-statusBarHeight
其他的类似,但是头条的因为titleBarHeight算不出来,也没有具体给定,暂时没法计算。

收起阅读 »

polyline 运动轨迹 高德

使用高德地图绘制运动轨迹,出来的效果,不规则 如图


。测试了一下获取的坐标还是相对精确的。同时使用高德app运动绘制的轨迹比较丝滑,如下图

大家一起讨论,持续研究中,
我使用的高德Key是白嫖的个人账号

继续阅读 »

使用高德地图绘制运动轨迹,出来的效果,不规则 如图


。测试了一下获取的坐标还是相对精确的。同时使用高德app运动绘制的轨迹比较丝滑,如下图

大家一起讨论,持续研究中,
我使用的高德Key是白嫖的个人账号

收起阅读 »

使用 uniapp 开发 app 端所遇到的问题和解决方案(持续更新)

vue3 nvue uniapp

目前正在开发一款信息整理相关的 app,场景并不复杂,但感觉开发起来还是比较累,所以写这篇文章记录自己在开发过程中遇到的问题,并且把相关的 demo 和视频都放出来,希望官方能看到,认为需要解决的就去好好解决吧。

由于我现在还没考虑编译成小程序和 ios,所以这块目前只有 Android 的经验

使用的技术:

  • vue3
  • hbuilderx 3.7.8
  • nvue(少部分的 .vue)

测试机型(只包含 Android,用不起 ios,缺少相关环境):

  • 小米 8,Android 10,8/64G,已使用 5 年
  • 小米13,Android 13,12/256G,使用不到半年

问题不区分优先级了,就按照我遇到的时间依次排。

问题一

min-heightmax-width 等 css 属性明明是生效的,但是写在<style>标签里就会出现警告:


所以我只能这么写:

<view class="location__tip" style="max-width: 140rpx;">  
   <text class="font-22 color-fff text-center">{{ data.name }}</text>  
</view>

警告说可能不受支持,是在什么情况下不受支持?然后这个警告有没有可以关闭的地方,或者换一种提示方式。

问题二

nvue里,click方法无法获取到点击的元素在页面上的坐标,只有这些信息:

后面经过折腾,发现touch事件可以拿到坐标。

所以想通过点击元素拿到坐标后做业务操作,就需要同时绑定clicktouchstart方法,由于touchstart方法一定会比click先执行,我们就能在touchstart方法里收集到坐标后赋值到全局变量里存起来给click使用。

参考:
【报Bug】nvue里click等事件没有返回坐标信息

问题三

nvue里,touch系列的事件,无法使用stopPropagation方法,没办法阻止事件冒泡,不知道这样是不是正常的

问题四

关于标签 布尔类型的属性:

<input :value="form.expires" disable disabled readonly placeholder="请选择过期时间" />

我想禁用一个input,按照常规的布尔值属性写法不行,必须:

<input :value="form.expires" :disabled="true" placeholder="请选择过期时间" />

所以大伙在写布尔值遇到不生效的情况,可以试试这样写,或许就生效了

参考:
【报Bug】uniapp vue3 input disabled 无效,仍然可以聚焦并弹出键盘

问题五

weex 的动画速度在不同机型上,表现不一样:

<template>  
  <view ref="dom" style="width: 30rpx; height: 30rpx; background-color: #00c49d">  
<!--    <g-icon className="g-icon-loading" type="loading" :color="color" :size="size" />-->  
  </view>  
</template>  

<script>  
export default { name: 'GIconLoading' }  
</script>  
<script setup>  
import GIcon from "./index.vue";  
import { onMounted, onUnmounted, ref } from "vue";  

const dom = ref()  
defineProps({  
  color: {  
    type: String,  
    default: '#999' // 深色 #999 | 浅色 #fff  
  },  
  size: {  
    type: [String, Number],  
    default: 40  
  },  
  paused: Boolean  
})  
// #ifdef APP-NVUE  
const animation = uni.requireNativePlugin('animation')  

let paused = false, step = 360  

onMounted(startAnimation)  
onUnmounted(() => paused = true)  

function startAnimation () {  
  if (paused) return  
  animation.transition(dom.value, {  
    styles: { transform: `rotate(${step}deg)`, },  
    duration: 750, //ms  
    timingFunction: 'ease-in-out',  
    needLayout: false,  
    delay: 0  
  }, () => {  
    step += 350  
    startAnimation()  
  })  
}  

// #endif  
</script>  

<style scoped>  
/* #ifndef APP-NVUE */  
:global(:host) {  
  overflow: hidden;  
  flex-shrink: 0;  
  display: flex;  
  flex-direction: row;  
  align-items: center;  
  justify-content: center;  
}  

/* #endif */  
.g-icon-loading {  
  /* #ifndef APP-NVUE */  
  animation: transform .75s infinite linear;  
  /* #endif */  
  transform-origin: center center;  
}  
</style>

动画效果见下文附件:weex 异常动画速度和 weex 正常动画效果 两个效果对比

继续阅读 »

目前正在开发一款信息整理相关的 app,场景并不复杂,但感觉开发起来还是比较累,所以写这篇文章记录自己在开发过程中遇到的问题,并且把相关的 demo 和视频都放出来,希望官方能看到,认为需要解决的就去好好解决吧。

由于我现在还没考虑编译成小程序和 ios,所以这块目前只有 Android 的经验

使用的技术:

  • vue3
  • hbuilderx 3.7.8
  • nvue(少部分的 .vue)

测试机型(只包含 Android,用不起 ios,缺少相关环境):

  • 小米 8,Android 10,8/64G,已使用 5 年
  • 小米13,Android 13,12/256G,使用不到半年

问题不区分优先级了,就按照我遇到的时间依次排。

问题一

min-heightmax-width 等 css 属性明明是生效的,但是写在<style>标签里就会出现警告:


所以我只能这么写:

<view class="location__tip" style="max-width: 140rpx;">  
   <text class="font-22 color-fff text-center">{{ data.name }}</text>  
</view>

警告说可能不受支持,是在什么情况下不受支持?然后这个警告有没有可以关闭的地方,或者换一种提示方式。

问题二

nvue里,click方法无法获取到点击的元素在页面上的坐标,只有这些信息:

后面经过折腾,发现touch事件可以拿到坐标。

所以想通过点击元素拿到坐标后做业务操作,就需要同时绑定clicktouchstart方法,由于touchstart方法一定会比click先执行,我们就能在touchstart方法里收集到坐标后赋值到全局变量里存起来给click使用。

参考:
【报Bug】nvue里click等事件没有返回坐标信息

问题三

nvue里,touch系列的事件,无法使用stopPropagation方法,没办法阻止事件冒泡,不知道这样是不是正常的

问题四

关于标签 布尔类型的属性:

<input :value="form.expires" disable disabled readonly placeholder="请选择过期时间" />

我想禁用一个input,按照常规的布尔值属性写法不行,必须:

<input :value="form.expires" :disabled="true" placeholder="请选择过期时间" />

所以大伙在写布尔值遇到不生效的情况,可以试试这样写,或许就生效了

参考:
【报Bug】uniapp vue3 input disabled 无效,仍然可以聚焦并弹出键盘

问题五

weex 的动画速度在不同机型上,表现不一样:

<template>  
  <view ref="dom" style="width: 30rpx; height: 30rpx; background-color: #00c49d">  
<!--    <g-icon className="g-icon-loading" type="loading" :color="color" :size="size" />-->  
  </view>  
</template>  

<script>  
export default { name: 'GIconLoading' }  
</script>  
<script setup>  
import GIcon from "./index.vue";  
import { onMounted, onUnmounted, ref } from "vue";  

const dom = ref()  
defineProps({  
  color: {  
    type: String,  
    default: '#999' // 深色 #999 | 浅色 #fff  
  },  
  size: {  
    type: [String, Number],  
    default: 40  
  },  
  paused: Boolean  
})  
// #ifdef APP-NVUE  
const animation = uni.requireNativePlugin('animation')  

let paused = false, step = 360  

onMounted(startAnimation)  
onUnmounted(() => paused = true)  

function startAnimation () {  
  if (paused) return  
  animation.transition(dom.value, {  
    styles: { transform: `rotate(${step}deg)`, },  
    duration: 750, //ms  
    timingFunction: 'ease-in-out',  
    needLayout: false,  
    delay: 0  
  }, () => {  
    step += 350  
    startAnimation()  
  })  
}  

// #endif  
</script>  

<style scoped>  
/* #ifndef APP-NVUE */  
:global(:host) {  
  overflow: hidden;  
  flex-shrink: 0;  
  display: flex;  
  flex-direction: row;  
  align-items: center;  
  justify-content: center;  
}  

/* #endif */  
.g-icon-loading {  
  /* #ifndef APP-NVUE */  
  animation: transform .75s infinite linear;  
  /* #endif */  
  transform-origin: center center;  
}  
</style>

动画效果见下文附件:weex 异常动画速度和 weex 正常动画效果 两个效果对比

收起阅读 »

hbuilderx-官方希望了解一下阿里云盘-容量大下载快

HBuilderX安装使用教程 HBuilderX

我真的无力吐槽了 ,作为一个技术,技术研发公司,居然连更优秀的工具都不去了解一下的吗??????

那个百度网盘下载两个文件,平均一个文件下载速度 50KB/S,大哥,什么年代了,还停留在这个下载速度(这个不怪你们,但是咱们能不能换个工具用?)。

建议官方去百度搜索一个叫做“阿里云盘”的东西,容量大,下载快。就hbuilderx这个编辑器得大小,我相信一分钟怎么都给下载完了。求求你们了,去了解一下好吗?

几分钟可能不算多,但是被这样恶心真的不爽,说白了阿里云盘也是找个人注册个账号,把文件迁移过去。不好吗??????

而且阿里云盘出来几年了,没玩过也听过名字吧,作为一个有体积的技术公司,内部一点都不共享一下优秀工具的使用吗??????

继续阅读 »

我真的无力吐槽了 ,作为一个技术,技术研发公司,居然连更优秀的工具都不去了解一下的吗??????

那个百度网盘下载两个文件,平均一个文件下载速度 50KB/S,大哥,什么年代了,还停留在这个下载速度(这个不怪你们,但是咱们能不能换个工具用?)。

建议官方去百度搜索一个叫做“阿里云盘”的东西,容量大,下载快。就hbuilderx这个编辑器得大小,我相信一分钟怎么都给下载完了。求求你们了,去了解一下好吗?

几分钟可能不算多,但是被这样恶心真的不爽,说白了阿里云盘也是找个人注册个账号,把文件迁移过去。不好吗??????

而且阿里云盘出来几年了,没玩过也听过名字吧,作为一个有体积的技术公司,内部一点都不共享一下优秀工具的使用吗??????

收起阅读 »

uni.previewImage(OBJECT)

previewimage

调用uni.previewImage(OBJECT) 如果有gif图片,且gif的宽小于屏幕的宽可不可以自动拉伸为屏幕的宽,如果gif的像素大于屏幕,自动缩小、官方可不可以优化以下这个功能。

调用uni.previewImage(OBJECT) 如果有gif图片,且gif的宽小于屏幕的宽可不可以自动拉伸为屏幕的宽,如果gif的像素大于屏幕,自动缩小、官方可不可以优化以下这个功能。