HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

v-bing image 总是不能成功?请大神

uniapp

我在uploadfile 成功回调中改变 image控件src值,想显示刚刚上传的图片,总是不能成功,我如果直接换成图像地址字符串("http://xxx.xxx.xxx.xxx/abc.jpg")可以正常显示,但我换成uploadfileres.data就不能显示,控制台打印出来uploadFileRes.data也是正确的,不知道这里要怎么弄才可以正常显示我刚刚上传的图片?请大神指导

    success: (uploadFileRes) => {  
                                    this.imageSrc=uploadFileRes.data;  
                                    console.log(uploadFileRes);  
                                },
继续阅读 »

我在uploadfile 成功回调中改变 image控件src值,想显示刚刚上传的图片,总是不能成功,我如果直接换成图像地址字符串("http://xxx.xxx.xxx.xxx/abc.jpg")可以正常显示,但我换成uploadfileres.data就不能显示,控制台打印出来uploadFileRes.data也是正确的,不知道这里要怎么弄才可以正常显示我刚刚上传的图片?请大神指导

    success: (uploadFileRes) => {  
                                    this.imageSrc=uploadFileRes.data;  
                                    console.log(uploadFileRes);  
                                },
收起阅读 »

全局webSocket.js

socket

1、根目录创建socket.js文件:

var websocket = weex.requireModule('webSocket')  
var connect = function() {  
    websocket.WebSocket('ws://192.168.31.250:8081/ws', '');  
    websocket.onopen(function(e) {  
        console.log('websocket已经打开');  
    });  
    websocket.onmessage(function(e) {  
        uni.$emit("onMsg"+e.data.status,e)  
    });  
    websocket.onerror(function(e) {  
        console.log("异常:" + JSON.stringify(e.data));  
        // console.log(e.data);    
    });  
    websocket.onclose(function(e) {  
        // console.log(  '');     
        console.log('连接已经关闭');  
        // console.log(  e.code);      
    });  
}  
function cls(){  
    websocket.close();  
}  
export default {  
    cls,  
    connect  
}

2.1、App.vue中引入:

import sockect from "socket.js"

2.2:onShow中调用:

sockect.connect()

2.3:onHide中删除:

sockect.cls()

3:各个页面中:
index.vue中:

uni.$on('onMsg1', function(data) {  
                console.log('监听到事件来自 update ,携带参数 msg 为:' + JSON.stringify(data));  
            })

user.vue中:

uni.$on('onMsg2', function(data) {  
                console.log('监听到事件来自 update ,携带参数 msg 为:' + JSON.stringify(data));  
            })

每个页面都监测一个不同的方法,方法名只是最后一个数字变了,让后台传数据时再传个状态值指明调用哪个方法的末尾值,这样就达到了全局的效果

继续阅读 »

1、根目录创建socket.js文件:

var websocket = weex.requireModule('webSocket')  
var connect = function() {  
    websocket.WebSocket('ws://192.168.31.250:8081/ws', '');  
    websocket.onopen(function(e) {  
        console.log('websocket已经打开');  
    });  
    websocket.onmessage(function(e) {  
        uni.$emit("onMsg"+e.data.status,e)  
    });  
    websocket.onerror(function(e) {  
        console.log("异常:" + JSON.stringify(e.data));  
        // console.log(e.data);    
    });  
    websocket.onclose(function(e) {  
        // console.log(  '');     
        console.log('连接已经关闭');  
        // console.log(  e.code);      
    });  
}  
function cls(){  
    websocket.close();  
}  
export default {  
    cls,  
    connect  
}

2.1、App.vue中引入:

import sockect from "socket.js"

2.2:onShow中调用:

sockect.connect()

2.3:onHide中删除:

sockect.cls()

3:各个页面中:
index.vue中:

uni.$on('onMsg1', function(data) {  
                console.log('监听到事件来自 update ,携带参数 msg 为:' + JSON.stringify(data));  
            })

user.vue中:

uni.$on('onMsg2', function(data) {  
                console.log('监听到事件来自 update ,携带参数 msg 为:' + JSON.stringify(data));  
            })

每个页面都监测一个不同的方法,方法名只是最后一个数字变了,让后台传数据时再传个状态值指明调用哪个方法的末尾值,这样就达到了全局的效果

收起阅读 »

我搞了一个直播插件,后续准备接入im,有没有对这个感兴趣的,现在直播的插件出来了

插件

直播插件地址:https://ext.dcloud.net.cn/plugin?id=824 希望这个插件能服务大众

直播插件地址:https://ext.dcloud.net.cn/plugin?id=824 希望这个插件能服务大众

深圳公司新项目(游戏相关)招聘全职前端开发

招聘

希望在深圳工作的小伙伴看过来~~~

公司启动了一个游戏相关的新项目。
第一个版本先上小程序,后面再更新Android,iOS
前端有2个职位在招:

【高级前端开发】
有基于uni-app的跨平台开发经验
负责过产品的前端开发
有插件开发经验
原生开发经验为加分项(可晋升为前端负责人)
月薪20~30 K

【前端开发】
计算机背景
有一定项目经验,能独立完成功能模块的开发
月薪12~18 K

团队介绍

研发团队成功开发上线过多款应用,已有一定技术积累
目前正在扩张期,适合需要新的平台发挥的小伙伴

联系方式:

QQ 330854909
有任何疑问请加我QQ勾搭~

继续阅读 »

希望在深圳工作的小伙伴看过来~~~

公司启动了一个游戏相关的新项目。
第一个版本先上小程序,后面再更新Android,iOS
前端有2个职位在招:

【高级前端开发】
有基于uni-app的跨平台开发经验
负责过产品的前端开发
有插件开发经验
原生开发经验为加分项(可晋升为前端负责人)
月薪20~30 K

【前端开发】
计算机背景
有一定项目经验,能独立完成功能模块的开发
月薪12~18 K

团队介绍

研发团队成功开发上线过多款应用,已有一定技术积累
目前正在扩张期,适合需要新的平台发挥的小伙伴

联系方式:

QQ 330854909
有任何疑问请加我QQ勾搭~

收起阅读 »

借github保留点官方的东西

帮助文档

uni,读 you ni,是统一的意思。

很多人以为小程序是微信先推出的,其实,DCloud才是这个行业的开创者。

DCloud于2012年开始研发小程序技术,优化webview的功能和性能,并加入W3C和HTML5中国产业联盟,推出了HBuilder开发工具,为后续产业化做准备。

2015年,DCloud正式商用了自己的小程序,产品名为“流应用”,它不是B/S模式的轻应用,而是能接近原生功能、性能的动态App,并且即点即用。

为将该技术发扬光大,DCloud将技术标准捐献给工信部旗下的HTML5中国产业联盟,并推进各家流量巨头接入该标准,开展小程序业务。

360手机助手率先接入,在其3.4版本实现应用的秒开运行。

<img src="https://img-cdn-qiniu.dcloud.net.cn/pic-3.png" style="max-width:480px;">

随后DCloud推动大众点评、携程、京东、有道词典、唯品会等众多开发者为流应用平台提供应用。

在2015年9月,DCloud推进微信团队开展小程序业务,演示了流应用的秒开应用、扫码获取应用、分享链接获取应用等众多场景案例,以及分享了webview体验优化的经验。

微信团队经过分析,于2016年初决定上线小程序业务,但其没有接入联盟标准,而是订制了自己的标准。

DCloud持续在业内普及小程序理念,推进各大流量巨头,包括手机厂商,陆续上线类似小程序/快应用等业务。

部分公司接入了联盟标准,但更多公司因利益纷争严重,标准难以统一。

技术是纯粹的,不应该因为商业利益而分裂。开发者面对如此多的私有标准不是一件正确的事情。

虽然是始作俑者,但造成混乱的局面非DCloud所愿。于是我们决定开发一个免费开源的框架。

既然各巨头无法在标准上达成一致,那么就通过这个框架为开发者抹平各平台差异。

这,就是uni-app的由来。

  • 因为多年积累,所以DCloud拥有300多万开发者,并不意外
  • 因为DCloud一直都有小程序的iOS、Android引擎,所以uni-app的App端和小程序端保持高度一致,并不意外
  • 因为DCloud在引擎上的持续投入,所以uni-app的App端功能、性能比大多数小程序引擎都优秀,并不意外
  • 因为DCloud对各家小程序太了解了,所以做好抹平各端差异的跨端框架,并不意外

现在,uni-app已经是业内最风靡的应用框架,支撑着6亿手机用户的庞大生态。

世界兜兜转转,当你踏出第一步时,随后很多事不会按你的预期发展。但只要你不忘初心,你想要的那个目标,最终会换个方式实现。

DCloud的初心是什么?

  1. 为开发者提供免费、高效的开发工具,让天下没有难做的应用
  2. 改进应用形态,让用户更方便的获取数字服务

DCloud也再次承诺不会对uni-app、HBuilderX等工具收费,感谢数百万开发者的一路陪伴,也请一直监督我们不忘初心!

继续阅读 »

uni,读 you ni,是统一的意思。

很多人以为小程序是微信先推出的,其实,DCloud才是这个行业的开创者。

DCloud于2012年开始研发小程序技术,优化webview的功能和性能,并加入W3C和HTML5中国产业联盟,推出了HBuilder开发工具,为后续产业化做准备。

2015年,DCloud正式商用了自己的小程序,产品名为“流应用”,它不是B/S模式的轻应用,而是能接近原生功能、性能的动态App,并且即点即用。

为将该技术发扬光大,DCloud将技术标准捐献给工信部旗下的HTML5中国产业联盟,并推进各家流量巨头接入该标准,开展小程序业务。

360手机助手率先接入,在其3.4版本实现应用的秒开运行。

<img src="https://img-cdn-qiniu.dcloud.net.cn/pic-3.png" style="max-width:480px;">

随后DCloud推动大众点评、携程、京东、有道词典、唯品会等众多开发者为流应用平台提供应用。

在2015年9月,DCloud推进微信团队开展小程序业务,演示了流应用的秒开应用、扫码获取应用、分享链接获取应用等众多场景案例,以及分享了webview体验优化的经验。

微信团队经过分析,于2016年初决定上线小程序业务,但其没有接入联盟标准,而是订制了自己的标准。

DCloud持续在业内普及小程序理念,推进各大流量巨头,包括手机厂商,陆续上线类似小程序/快应用等业务。

部分公司接入了联盟标准,但更多公司因利益纷争严重,标准难以统一。

技术是纯粹的,不应该因为商业利益而分裂。开发者面对如此多的私有标准不是一件正确的事情。

虽然是始作俑者,但造成混乱的局面非DCloud所愿。于是我们决定开发一个免费开源的框架。

既然各巨头无法在标准上达成一致,那么就通过这个框架为开发者抹平各平台差异。

这,就是uni-app的由来。

  • 因为多年积累,所以DCloud拥有300多万开发者,并不意外
  • 因为DCloud一直都有小程序的iOS、Android引擎,所以uni-app的App端和小程序端保持高度一致,并不意外
  • 因为DCloud在引擎上的持续投入,所以uni-app的App端功能、性能比大多数小程序引擎都优秀,并不意外
  • 因为DCloud对各家小程序太了解了,所以做好抹平各端差异的跨端框架,并不意外

现在,uni-app已经是业内最风靡的应用框架,支撑着6亿手机用户的庞大生态。

世界兜兜转转,当你踏出第一步时,随后很多事不会按你的预期发展。但只要你不忘初心,你想要的那个目标,最终会换个方式实现。

DCloud的初心是什么?

  1. 为开发者提供免费、高效的开发工具,让天下没有难做的应用
  2. 改进应用形态,让用户更方便的获取数字服务

DCloud也再次承诺不会对uni-app、HBuilderX等工具收费,感谢数百万开发者的一路陪伴,也请一直监督我们不忘初心!

收起阅读 »

横屏状态栏高度bug

bug反馈

app端和pad端如果横屏开启时底部会一直有白条,竖屏没有

目前我是隐藏状态栏去了白条

app端和pad端如果横屏开启时底部会一直有白条,竖屏没有

目前我是隐藏状态栏去了白条

uni-app起始脚手架:零成本开始使用uni-app!使用pug、stylus、loadsh-es、eslint、vuex,和一个灵活的样式库,欢迎试用

lodash stylus uniapp

用uniapp给公司写过一个小程序,抽取出了一个起始脚手架,使用pug、stylus、loadsh-es、eslint、vuex,和一个灵活的样式库(包含基础组件和业务组件结构),文件夹安排好了前端结构,如常量constants,工具函数utils等,另外还能将svg自动转成iconfont,欢迎试用和提建议/:,@-D

https://github.com/liuyanzhi08/uniapp-scaffold

继续阅读 »

用uniapp给公司写过一个小程序,抽取出了一个起始脚手架,使用pug、stylus、loadsh-es、eslint、vuex,和一个灵活的样式库(包含基础组件和业务组件结构),文件夹安排好了前端结构,如常量constants,工具函数utils等,另外还能将svg自动转成iconfont,欢迎试用和提建议/:,@-D

https://github.com/liuyanzhi08/uniapp-scaffold

收起阅读 »

uniapp真机调试报request:fail abort

uniapp

访问路径之前用的localhost,改成电脑ip就好了

访问路径之前用的localhost,改成电脑ip就好了

uni-app二维码、条形码扫码自定义

uniapp

uni-app二维码、条形码扫码自定义

github地址,喜欢的可以star下哦

插件预览图

使用教程

1.插件代码拷贝

  • 下载后把components目录下scan.vue文件拷贝到自己项目目录下

2.插件全局配置

  • 在项目里main.js中配置如下代码
import scan from './components/scan.vue'  

Vue.component('scan',scan)  

3.插件使用

  • vue页面使用
<template>  
    <view>  
        <scan @getCode="getScanCode"/>  
    </view>  
</template>  

<script>  
    export default {  
        data() {  
            return {  

            }  
        },  
        methods: {  
            //获取扫码控件  
            getScanCode(val){  
                console.log(val)  
            },  
        }  
    }  
</script>  

<style>  

</style>  
兼容性

uni-app项目ios、android都兼容

继续阅读 »

uni-app二维码、条形码扫码自定义

github地址,喜欢的可以star下哦

插件预览图

使用教程

1.插件代码拷贝

  • 下载后把components目录下scan.vue文件拷贝到自己项目目录下

2.插件全局配置

  • 在项目里main.js中配置如下代码
import scan from './components/scan.vue'  

Vue.component('scan',scan)  

3.插件使用

  • vue页面使用
<template>  
    <view>  
        <scan @getCode="getScanCode"/>  
    </view>  
</template>  

<script>  
    export default {  
        data() {  
            return {  

            }  
        },  
        methods: {  
            //获取扫码控件  
            getScanCode(val){  
                console.log(val)  
            },  
        }  
    }  
</script>  

<style>  

</style>  
兼容性

uni-app项目ios、android都兼容

收起阅读 »

【经验分享】uniapp的input安卓自动聚焦和双向绑定安卓5.1局部组件失效

input

自动聚焦爬坑
需求:在扫码pda扫码然后每次扫完需要自动input
爬坑:一开始,我设置focus,在浏览器调试可以,但打包成安卓运行在5.1就会失效。经验就是:

    <input class="uni-input"  @confirm="onKeyInput"  
             :focus='setFocus' placeholder="请扫描条码" v-model="inputValue" disable=true @blur='resetFocus' @focus="addStyle" />  

export default {  
        components: {  
            mpvuePicker  
        },  
        data() {  
            return {  
                setFocus: false,  
            };  
        },  
        methods: {  
            resetFocus() {  
                this.setFocus = false;  
            }  
               }}

在失去焦点的时候 一定要把focus设置为 false,然后在别的事件触发完,再设置为true

            postProductInfo: function(product = {}) {  
                let _data = product;  
                uni.request({  
                    url: url,  
                    method: 'POST',  
                    data: _data,  
                    success: (res) => {  
                        uni.showToast({  
                            title: res.data.msg,  
                            duration: 1000  
                        });  
                        this.stockTimeNum()  
                        setTimeout(() => {  
                            this.setFocus = true  
                        }, 400)  
                    }  
                })  
            },

比如这里,坑就是之前我之前已经在某个地方写了this.setFocus = true,页面确实聚焦了,但是在有toast,下面的列表举荐渲染的时候,页面的input会闪一下,导致重新失去焦点,这时候需要自己找下在哪是最后一次渲染完 然后重新聚焦。

安卓5.1双向绑定失效

我在安卓8.0没问题 但是在pda扫码机器上 在动态刷新已扫码数量的时候,会不更新。控制台打印信息为:请求成功,但是无数据。不敢复现bug截图了。

解决办法:

        data() {  
            return {  
                pickerText: '',  
                scope: ''  
            };  
        },  
               methods: {  
            onConfirm(e) {  
                this.pickerText = e  
                this.scope = this.pickerText.value[0]   
                this.$nextTick(function() {  
                    this.stockTimeNum() // 这里的请求方法我直接直接使用this.pickerText.value[0] 请求传餐,会在5.1失效。。。爬坑时间半天。  
                    this.setFocus = true  
                })  
            }  
}

ps:爬了一天T.T。感谢uniapp团队。

继续阅读 »

自动聚焦爬坑
需求:在扫码pda扫码然后每次扫完需要自动input
爬坑:一开始,我设置focus,在浏览器调试可以,但打包成安卓运行在5.1就会失效。经验就是:

    <input class="uni-input"  @confirm="onKeyInput"  
             :focus='setFocus' placeholder="请扫描条码" v-model="inputValue" disable=true @blur='resetFocus' @focus="addStyle" />  

export default {  
        components: {  
            mpvuePicker  
        },  
        data() {  
            return {  
                setFocus: false,  
            };  
        },  
        methods: {  
            resetFocus() {  
                this.setFocus = false;  
            }  
               }}

在失去焦点的时候 一定要把focus设置为 false,然后在别的事件触发完,再设置为true

            postProductInfo: function(product = {}) {  
                let _data = product;  
                uni.request({  
                    url: url,  
                    method: 'POST',  
                    data: _data,  
                    success: (res) => {  
                        uni.showToast({  
                            title: res.data.msg,  
                            duration: 1000  
                        });  
                        this.stockTimeNum()  
                        setTimeout(() => {  
                            this.setFocus = true  
                        }, 400)  
                    }  
                })  
            },

比如这里,坑就是之前我之前已经在某个地方写了this.setFocus = true,页面确实聚焦了,但是在有toast,下面的列表举荐渲染的时候,页面的input会闪一下,导致重新失去焦点,这时候需要自己找下在哪是最后一次渲染完 然后重新聚焦。

安卓5.1双向绑定失效

我在安卓8.0没问题 但是在pda扫码机器上 在动态刷新已扫码数量的时候,会不更新。控制台打印信息为:请求成功,但是无数据。不敢复现bug截图了。

解决办法:

        data() {  
            return {  
                pickerText: '',  
                scope: ''  
            };  
        },  
               methods: {  
            onConfirm(e) {  
                this.pickerText = e  
                this.scope = this.pickerText.value[0]   
                this.$nextTick(function() {  
                    this.stockTimeNum() // 这里的请求方法我直接直接使用this.pickerText.value[0] 请求传餐,会在5.1失效。。。爬坑时间半天。  
                    this.setFocus = true  
                })  
            }  
}

ps:爬了一天T.T。感谢uniapp团队。

收起阅读 »

封装了一个简易的tab组件,已发布npm包,可直接安装使用

ui组件 组件 自定义组件

自己之前在业务中碰到需要tab组件,发现uni-app没有提供该基础组件,因此自己封装了一个简易的tab标签组件,如果有需要可以拿去使用,如果觉得还阔以,还请赏个star以激励作者,蟹蟹啦。
npm包中包含组件实现以及demo示例,很清晰,有问题可以提issue,会尽快回复。
github地址:https://github.com/tingyuxuan2302/uni-app

继续阅读 »

自己之前在业务中碰到需要tab组件,发现uni-app没有提供该基础组件,因此自己封装了一个简易的tab标签组件,如果有需要可以拿去使用,如果觉得还阔以,还请赏个star以激励作者,蟹蟹啦。
npm包中包含组件实现以及demo示例,很清晰,有问题可以提issue,会尽快回复。
github地址:https://github.com/tingyuxuan2302/uni-app

收起阅读 »

iOS证书相关知识介绍

iOS打包 iOS

很多刚开始接触iOS证书的开发者可能不是很了解iOS证书的类型功能和概念。

下面对iOS证书的几个方面进行介绍。

iOS证书的类型和作用

1、iOS开发证书

iOS开发证书是用于测试APP,在开发过程中安装到苹果手机真机测试APP的运行情况。

2、iOS发布证书

当APP开发测试好后上线就需要用到iOS发布证书,用iOS发布证书打包的ipa才能上传到App Store审核。

3、iOS推送证书

iOS推送证书是用于推送通知的,平时我们在手机的系统栏下拉看到的那些消息就是推送通知,如果要做这个功能就需要配置推送证书。

4、iOS企业证书

iOS企业证书需要企业开发者账号才能申请,用于无法上架App Store的苹果APP打包签名使用。

常用的就是以上这4种iOS证书,当你需要什么功能的时候就知道用哪个类型的iOS证书。

iOS证书的构成和有效性

iOS证书由两个文件构成。p12文件和.mobileprovision文件

p12文件相当于公钥,.mobileprovision文件相当于私钥。

开发证书p12文件苹果规定只能申请2个,发布证书p12文件只能申请3个!iOS证书配置.mobileprovision文件是没有任何数量限制的!

p12可以共用,一个p12可以对应无数个.mobileprovision文件!所以就算p12申请一个也够用了,可以对应创建无数套iOS证书!

所以对于证书数量的担忧是没有意义的!不会限制你上架多少个APP!

ios证书的有效期是一年,在我们软件的和开发者后台都能看到到期时间。

iOS证书可以删除吗,到期怎么更新

iOS证书是可以随意删除的(不管有没有到期),不会影响已经上架的APP。

如果你还在测试APP。删除了测试用的开发证书,APP将打不开,当然这个也没什么关系,测试APP是要不停打包的,重新申请证书打包重新安装就可以了。

iOS证书到期了需不需要重新申请呢,具体看需要,如果你要更新已经上架的APP,更新版本,删除到期的证书重新申请打包上传更新。

如果不更新APP,到期了不管他也没什么关系,不会影响上架了的APP。

继续阅读 »

很多刚开始接触iOS证书的开发者可能不是很了解iOS证书的类型功能和概念。

下面对iOS证书的几个方面进行介绍。

iOS证书的类型和作用

1、iOS开发证书

iOS开发证书是用于测试APP,在开发过程中安装到苹果手机真机测试APP的运行情况。

2、iOS发布证书

当APP开发测试好后上线就需要用到iOS发布证书,用iOS发布证书打包的ipa才能上传到App Store审核。

3、iOS推送证书

iOS推送证书是用于推送通知的,平时我们在手机的系统栏下拉看到的那些消息就是推送通知,如果要做这个功能就需要配置推送证书。

4、iOS企业证书

iOS企业证书需要企业开发者账号才能申请,用于无法上架App Store的苹果APP打包签名使用。

常用的就是以上这4种iOS证书,当你需要什么功能的时候就知道用哪个类型的iOS证书。

iOS证书的构成和有效性

iOS证书由两个文件构成。p12文件和.mobileprovision文件

p12文件相当于公钥,.mobileprovision文件相当于私钥。

开发证书p12文件苹果规定只能申请2个,发布证书p12文件只能申请3个!iOS证书配置.mobileprovision文件是没有任何数量限制的!

p12可以共用,一个p12可以对应无数个.mobileprovision文件!所以就算p12申请一个也够用了,可以对应创建无数套iOS证书!

所以对于证书数量的担忧是没有意义的!不会限制你上架多少个APP!

ios证书的有效期是一年,在我们软件的和开发者后台都能看到到期时间。

iOS证书可以删除吗,到期怎么更新

iOS证书是可以随意删除的(不管有没有到期),不会影响已经上架的APP。

如果你还在测试APP。删除了测试用的开发证书,APP将打不开,当然这个也没什么关系,测试APP是要不停打包的,重新申请证书打包重新安装就可以了。

iOS证书到期了需不需要重新申请呢,具体看需要,如果你要更新已经上架的APP,更新版本,删除到期的证书重新申请打包上传更新。

如果不更新APP,到期了不管他也没什么关系,不会影响上架了的APP。

收起阅读 »