
创建一个uniApp小组织!欢迎大家一起来交流采坑!
以前一直用Dcloud和api开发混合app,最近官方推出一个uniApp 总要一起采坑吧,欢迎大家进群一起交流或者分享经验。
QQ群:854873282。
以前一直用Dcloud和api开发混合app,最近官方推出一个uniApp 总要一起采坑吧,欢迎大家进群一起交流或者分享经验。
QQ群:854873282。

app开发容易吗,最快的开发制作时间是多久
开发一个app多少钱?开发一个app需要多长的时间?这是很多的客户都会问到的一个问题。根据客户的开发的app的类型,开发的需求,不同的app开发都会有范围内的变化。但是一般的app开发的周期在3到6个月,如果需要开发的app功能比较的复杂,或者很特别,有或者有很多新的创意元素,其开发的周期也会相应的延长。如果想要知道具体的app开发的时间需要多久的话,那么下面就跟大家讲解一下app开发中各阶段所花费的大概时间。
想要了解开发一款app需要多长时间,需要先知道影响一个app开发的周期的因素有什么呢?除了是选择开发方案的定制还是选择模板以外,还有其他因素影响,这里以定制开发的方案,根据开发方案上的要求,定制开发,满足所有的功能需求。开发的流程中各个阶段需要花费的大概时间。
1、数据整合:允许用户访问数据,向第三方展示数据。所花费时间大致为2-3天;
2、数据储存:建立本地的app板块,也就是后端进行实现数据储存。所花时间大致为3-5天;
3、用户账号管理:创建用户账号的管理,接入管理系统。几分钟时间就可以搞定,不计入总开发时间内;
4、框架设计:根据开发的要求,设计app的框架,进行用户的体验和交互。所花时间大致为1-2天;
5、UI设计:根据app的特点设计良好的用户体验UI,保持界面的良好的交互性。所花时间大致为7-10天左右;
7、UI开发;把UI的模块转变成可以运行的代码,功能界面。所花时间大致为1-2天;
8、程序语言开发:根据app开发的功能等各方面的要求,开发出可运行的程序语言,变成可实现功能的app。所花时间大致为2-3个月;
9、app测试:测试app的功能性、交互性。站在用户的角度测试app的各方面的内容,包括是bug修复。所花时间大致为3-5天;
10、反复的测试app,不断的完善app功能,交互,实现开发方案的所有的需求。所花时间大致为2-3天。
影响一个app的开发的周期时间的因素有前端设计、用户界面、 后端整合、用户管理、身份验证等。一个专业的app开发公司能够根据多年来的开发经验,尽量的缩短开发的时间长度,满足客户的要求。信息来由郑州app开发公司燚轩科技整理发布。
开发一个app多少钱?开发一个app需要多长的时间?这是很多的客户都会问到的一个问题。根据客户的开发的app的类型,开发的需求,不同的app开发都会有范围内的变化。但是一般的app开发的周期在3到6个月,如果需要开发的app功能比较的复杂,或者很特别,有或者有很多新的创意元素,其开发的周期也会相应的延长。如果想要知道具体的app开发的时间需要多久的话,那么下面就跟大家讲解一下app开发中各阶段所花费的大概时间。
想要了解开发一款app需要多长时间,需要先知道影响一个app开发的周期的因素有什么呢?除了是选择开发方案的定制还是选择模板以外,还有其他因素影响,这里以定制开发的方案,根据开发方案上的要求,定制开发,满足所有的功能需求。开发的流程中各个阶段需要花费的大概时间。
1、数据整合:允许用户访问数据,向第三方展示数据。所花费时间大致为2-3天;
2、数据储存:建立本地的app板块,也就是后端进行实现数据储存。所花时间大致为3-5天;
3、用户账号管理:创建用户账号的管理,接入管理系统。几分钟时间就可以搞定,不计入总开发时间内;
4、框架设计:根据开发的要求,设计app的框架,进行用户的体验和交互。所花时间大致为1-2天;
5、UI设计:根据app的特点设计良好的用户体验UI,保持界面的良好的交互性。所花时间大致为7-10天左右;
7、UI开发;把UI的模块转变成可以运行的代码,功能界面。所花时间大致为1-2天;
8、程序语言开发:根据app开发的功能等各方面的要求,开发出可运行的程序语言,变成可实现功能的app。所花时间大致为2-3个月;
9、app测试:测试app的功能性、交互性。站在用户的角度测试app的各方面的内容,包括是bug修复。所花时间大致为3-5天;
10、反复的测试app,不断的完善app功能,交互,实现开发方案的所有的需求。所花时间大致为2-3天。
影响一个app的开发的周期时间的因素有前端设计、用户界面、 后端整合、用户管理、身份验证等。一个专业的app开发公司能够根据多年来的开发经验,尽量的缩短开发的时间长度,满足客户的要求。信息来由郑州app开发公司燚轩科技整理发布。
收起阅读 »
[uni-app/H5+/MUI]学习讨论群组: 418967623
uni-app
H5+
MUI
有问题找组织
学习讨论群组: 418967623
-------------
uni-app
H5+
MUI
有问题找组织
学习讨论群组: 418967623
-------------

原生底部选项卡,显示不正常问题,反复测试后找到原因,疑似BUG??
算半个标题党吧,当然问题也可能解决了,先说一下遇到的问题吧:
注:此问题只在IOS真机中存在,真机测试都没问题,只有打包安装才有问题
app首页使用了官方提供的原生底部选项卡,一直没有问题,好好的
直到昨天,记忆中没有修改配置文件(只修改了选项卡图标的大小),然后打包安装之后发现,
除首页之外那几个选项卡出现了BUG,感觉就像app的标题栏遮挡住了子webview
我打的ios安装包都是上传到蒲公英上的,之前的没问题,于是我挨个重新安装,找到了一个没问题的(没问题的这个安装包是2天前打的包)
但是我将项目一天天的还原回去的时候,却发现bug一直存在。。
有种感觉B了狗了~
调试了一上午,各种还原各种替换,都没有解决。
而且我将没有问题的安装包,解压,找到www目录,然后把里面的所有文件替换掉本地项目的,也还是不行~
后来在底部选项卡的代码中看到了如下代码:
//兼容安卓上添加titleNView 和 设置沉浸式模式会遮盖子webview内容
if(mui.os.android) {
if(plus.navigator.isImmersedStatusbar()) {
subpage_style.top += plus.navigator.getStatusbarHeight();
}
if(self.getTitleNView()) {
subpage_style.top += 40;
}
}
于是尝试把判断是否为安卓的去掉了,成了这样:
if(plus.navigator.isImmersedStatusbar()) {
subpage_style.top += plus.navigator.getStatusbarHeight();
}
if(self.getTitleNView()) {
subpage_style.top += 40;
}
然后再打包,安装发现好了。。。。
虽然有点懵懂,但是不知道为什么。。。。为什么之前一直好好的,就突然出问题了。。
而且我的项目是每天一次手动全量备份的,我一天天的还原,都还原到一周之前了,也还是不行。。。
所以有些疑惑?有没有其他同行也遇到过这问题??或者说这是不是一会BUG???
算半个标题党吧,当然问题也可能解决了,先说一下遇到的问题吧:
注:此问题只在IOS真机中存在,真机测试都没问题,只有打包安装才有问题
app首页使用了官方提供的原生底部选项卡,一直没有问题,好好的
直到昨天,记忆中没有修改配置文件(只修改了选项卡图标的大小),然后打包安装之后发现,
除首页之外那几个选项卡出现了BUG,感觉就像app的标题栏遮挡住了子webview
我打的ios安装包都是上传到蒲公英上的,之前的没问题,于是我挨个重新安装,找到了一个没问题的(没问题的这个安装包是2天前打的包)
但是我将项目一天天的还原回去的时候,却发现bug一直存在。。
有种感觉B了狗了~
调试了一上午,各种还原各种替换,都没有解决。
而且我将没有问题的安装包,解压,找到www目录,然后把里面的所有文件替换掉本地项目的,也还是不行~
后来在底部选项卡的代码中看到了如下代码:
//兼容安卓上添加titleNView 和 设置沉浸式模式会遮盖子webview内容
if(mui.os.android) {
if(plus.navigator.isImmersedStatusbar()) {
subpage_style.top += plus.navigator.getStatusbarHeight();
}
if(self.getTitleNView()) {
subpage_style.top += 40;
}
}
于是尝试把判断是否为安卓的去掉了,成了这样:
if(plus.navigator.isImmersedStatusbar()) {
subpage_style.top += plus.navigator.getStatusbarHeight();
}
if(self.getTitleNView()) {
subpage_style.top += 40;
}
然后再打包,安装发现好了。。。。
虽然有点懵懂,但是不知道为什么。。。。为什么之前一直好好的,就突然出问题了。。
而且我的项目是每天一次手动全量备份的,我一天天的还原,都还原到一周之前了,也还是不行。。。
所以有些疑惑?有没有其他同行也遇到过这问题??或者说这是不是一会BUG???

大道至简 知易行难 JAVA 完成WebSocket demo 用GoEasy实现Hello world
uniapp websocket体验demo:https://ext.dcloud.net.cn/plugin?id=1334
一个项目在方向、目标和运营理念已经定义了的时候,我们会去考虑项目本身的周期和开发成本。当然,所有的公司都会在项目能够达成目标的同时尽量减少人力成本和时间成本,其中,就会有用到三方的软件和框架。
大道至简 知易行难,作为一名开发人员站在开发的角度上来讲,怎样去攻克一个技术难题或者需要学习新的语言、技术去应用于新的项目,已经不会是最大的问题,而时间成本以及人力成本会是一个团队以及公司去考虑的侧重点。怎样去减少这些开发成本最终达到同样的期望效果,今天我给大家介绍一款产品:GoEasy, 简单而强大的三方WebSocket。
机缘巧合中接触到了GoEasy,在一次紧急项目中为了节约开发时间成本而找到了GoEasy,在介绍上看着非常简单,怕的是不够稳定,所以购买了付费的做了并发测试,效果好的有点意外,非常稳定。
这是我跟着官网的入门流程走的步骤:
1 登录 www.goeasy.io
2 注册账号并登录
3 登录进入后台
我的应用→创建应用→选择地区→获取APP keys
这里选择地区有3个选项可以选择,华东(杭州)、美国东部(弗吉尼亚)、新加坡,根据产品使用用户所在地来选择效果最佳。
点开APP keys 查看
我们会获得2个对应的key,一个只能用来订阅channel来接收消息的Subscribe key和一个既可以发送消息也可以订阅channel来接受消息的Common key。
OK 现在用一个demo来展示,为什么只需要9分钟。
服务器→客户端
这里我用JAVA来演示,当然 GoEasy适用于任何语言和浏览器。
先用JAVA写一个Demo
package com.cy;
import io.goeasy.GoEasy;
import io.goeasy.publish.GoEasyError;
import io.goeasy.publish.PublishListener;
public class GoEasySdkTest {
public static void main(String[] args) {
GoEasy goEasy = new GoEasy("rest-hangzhou.goeasy.io", "your app keyXXXXXXXXXXXXXXXXX");
goEasy.publish("demo", "HelloWorld", new PublishListener(){
@Override
public void onSuccess() {
System.out.println("Publish Success");
}
@Override
public void onFailed(GoEasyError error) {
System.out.println("Publish failed "+error.getCode()+":"+error.getContent());
}
});
}
}
这里需要注意的是,我这里用的GoEasy的依赖包,可以直接下载
用html 写一个接收端
<html>
<head>
<script type="text/javascript" src="https://cdn-hangzhou.goeasy.io/goeasy.js"></script>
<script type="text/javascript">
var goeasy = new GoEasy({
appkey: 'your app keyXXXXXXXXXXXXXX'
});
goeasy.subscribe({
channel: 'demo',
onMessage: function(message){
//收到消息的第一行,打出日志,以这个时间作为检查的标准
alert('收到:'+message.content);
}
});
</script>
</head>
</html>
这里我用的是Common key,在实战项目中,接收端使用Common key会存在安全缺陷,建议使用Subscribe key。
还有需要注意的一点就是,CDN host和Rest host 取决于你在创建应用时的选择。
最后从页面接受结果可以看到与C#中demo content推送的内容一致。
同时,我们也可以完成客户端→客户端的推送
发送端
<!DOCTYPE html>
<html>
<html>
<head>
<script type="text/javascript" src="https://cdn-hangzhou.goeasy.io/goeasy.js"></script>
<script type="text/javascript">
var goeasy = new GoEasy({
appkey: 'your app keyXXXXXXXXXXXXXX'
});
function publishMessage() {
var publishMessage = document.getElementById("content").value;
goeasy.publish({
channel: 'demo',
message: publishMessage,
onFailed: function (error) {
alert(error.code+" : "+error.content);
},
onSuccess: function(){
document.getElementById("content").value='';
}
});
}
</script>
</head>
<body>
<textarea rows="3" cols="20" id="content">
</textarea>
<button id="fasong" onclick="publishMessage()">Send</button>
接收端代码不变,我们从发送端发送消息
最后接受成功
同样的app key在不同的代码以及环境中都能够达到同样的效果,GoEasy 在让WebSocket变简单的过程中为开发人员极大的减少了时间和人力成本,如果您对安全性有要求的话,GoEasy 付费项目中有OTP 。是官方独有的技术,完全保证了消息的安全。
uniapp websocket体验demo:https://ext.dcloud.net.cn/plugin?id=1334
一个项目在方向、目标和运营理念已经定义了的时候,我们会去考虑项目本身的周期和开发成本。当然,所有的公司都会在项目能够达成目标的同时尽量减少人力成本和时间成本,其中,就会有用到三方的软件和框架。
大道至简 知易行难,作为一名开发人员站在开发的角度上来讲,怎样去攻克一个技术难题或者需要学习新的语言、技术去应用于新的项目,已经不会是最大的问题,而时间成本以及人力成本会是一个团队以及公司去考虑的侧重点。怎样去减少这些开发成本最终达到同样的期望效果,今天我给大家介绍一款产品:GoEasy, 简单而强大的三方WebSocket。
机缘巧合中接触到了GoEasy,在一次紧急项目中为了节约开发时间成本而找到了GoEasy,在介绍上看着非常简单,怕的是不够稳定,所以购买了付费的做了并发测试,效果好的有点意外,非常稳定。
这是我跟着官网的入门流程走的步骤:
1 登录 www.goeasy.io
2 注册账号并登录
3 登录进入后台
我的应用→创建应用→选择地区→获取APP keys
这里选择地区有3个选项可以选择,华东(杭州)、美国东部(弗吉尼亚)、新加坡,根据产品使用用户所在地来选择效果最佳。
点开APP keys 查看
我们会获得2个对应的key,一个只能用来订阅channel来接收消息的Subscribe key和一个既可以发送消息也可以订阅channel来接受消息的Common key。
OK 现在用一个demo来展示,为什么只需要9分钟。
服务器→客户端
这里我用JAVA来演示,当然 GoEasy适用于任何语言和浏览器。
先用JAVA写一个Demo
package com.cy;
import io.goeasy.GoEasy;
import io.goeasy.publish.GoEasyError;
import io.goeasy.publish.PublishListener;
public class GoEasySdkTest {
public static void main(String[] args) {
GoEasy goEasy = new GoEasy("rest-hangzhou.goeasy.io", "your app keyXXXXXXXXXXXXXXXXX");
goEasy.publish("demo", "HelloWorld", new PublishListener(){
@Override
public void onSuccess() {
System.out.println("Publish Success");
}
@Override
public void onFailed(GoEasyError error) {
System.out.println("Publish failed "+error.getCode()+":"+error.getContent());
}
});
}
}
这里需要注意的是,我这里用的GoEasy的依赖包,可以直接下载
用html 写一个接收端
<html>
<head>
<script type="text/javascript" src="https://cdn-hangzhou.goeasy.io/goeasy.js"></script>
<script type="text/javascript">
var goeasy = new GoEasy({
appkey: 'your app keyXXXXXXXXXXXXXX'
});
goeasy.subscribe({
channel: 'demo',
onMessage: function(message){
//收到消息的第一行,打出日志,以这个时间作为检查的标准
alert('收到:'+message.content);
}
});
</script>
</head>
</html>
这里我用的是Common key,在实战项目中,接收端使用Common key会存在安全缺陷,建议使用Subscribe key。
还有需要注意的一点就是,CDN host和Rest host 取决于你在创建应用时的选择。
最后从页面接受结果可以看到与C#中demo content推送的内容一致。
同时,我们也可以完成客户端→客户端的推送
发送端
<!DOCTYPE html>
<html>
<html>
<head>
<script type="text/javascript" src="https://cdn-hangzhou.goeasy.io/goeasy.js"></script>
<script type="text/javascript">
var goeasy = new GoEasy({
appkey: 'your app keyXXXXXXXXXXXXXX'
});
function publishMessage() {
var publishMessage = document.getElementById("content").value;
goeasy.publish({
channel: 'demo',
message: publishMessage,
onFailed: function (error) {
alert(error.code+" : "+error.content);
},
onSuccess: function(){
document.getElementById("content").value='';
}
});
}
</script>
</head>
<body>
<textarea rows="3" cols="20" id="content">
</textarea>
<button id="fasong" onclick="publishMessage()">Send</button>
接收端代码不变,我们从发送端发送消息
最后接受成功
同样的app key在不同的代码以及环境中都能够达到同样的效果,GoEasy 在让WebSocket变简单的过程中为开发人员极大的减少了时间和人力成本,如果您对安全性有要求的话,GoEasy 付费项目中有OTP 。是官方独有的技术,完全保证了消息的安全。
收起阅读 »
app开发是不是一件简单的事呢?为何如此复杂
对于投资app开发来说,最常见的例子,很多人上来就问做一个手机app多少钱?或者问做一个简单的手机app多少钱?这对于很多郑州app开发公司来说,根本没有办法回答,为什么呢?接下来专业的郑州app开发公司燚轩科技来分别回答一下这些问题,看完之后大家就明白了,为什么询问app开发报价之后无法得到一个准确的答复。
第一种,问做一个手机app多少钱?
其实问这个问题就像是到手机专卖店问,一个手机要多少钱一样,手机有三五百的,也有三五千上万的,手机的品牌、用途、配置等不一样价格是天差地别的,同理,问手机app也一样。必须表达清楚自己要的是什么样的手机app,用于什么场景,解决什么问题,具体需要哪些功能,没有这些就来问价格,简直就是到手机专卖店直接说我要一个手机,你告诉我价格就行了!店员肯定一脸懵逼,用看稀奇的眼神来看你,因为你根本就没有说要买什么样的手机!因此,对于这个做一个手机app多少钱的问题,那么答案是:从几百几千到几个亿,都有可能!
第二种,我要做一个简单的手机app,多少钱?
其实,每个人对于简单的定义是不一样的,你说的简单具体简单到什么程度,又具体要做什么东西的,要知道很多人认为微信也挺简单的...没有具体的说明,根本就谈不上简单不简单!因此,对于这个问题,那么给出的回答则是:请说清楚具体功能要求先。
很多不负责的手机app开发商只会告诉客户开发一个手机app很简单,快点签合同开工吧!但是客户都说不清楚手机app具体需要哪些功能,开放商怎么会知道呢?如果寄希望于开发商为你思考细节,最可能的结果就是给你偷换概念,这样报价才会更低,增加选择他的机会!例如,一个客户只说要注册登录,而没有提要找回密码,这个不负责任的开放商也难得糊涂,没有提醒他,最后这手机app就没有找回密码功能。
对于投资app开发来说,最常见的例子,很多人上来就问做一个手机app多少钱?或者问做一个简单的手机app多少钱?这对于很多郑州app开发公司来说,根本没有办法回答,为什么呢?接下来专业的郑州app开发公司燚轩科技来分别回答一下这些问题,看完之后大家就明白了,为什么询问app开发报价之后无法得到一个准确的答复。
第一种,问做一个手机app多少钱?
其实问这个问题就像是到手机专卖店问,一个手机要多少钱一样,手机有三五百的,也有三五千上万的,手机的品牌、用途、配置等不一样价格是天差地别的,同理,问手机app也一样。必须表达清楚自己要的是什么样的手机app,用于什么场景,解决什么问题,具体需要哪些功能,没有这些就来问价格,简直就是到手机专卖店直接说我要一个手机,你告诉我价格就行了!店员肯定一脸懵逼,用看稀奇的眼神来看你,因为你根本就没有说要买什么样的手机!因此,对于这个做一个手机app多少钱的问题,那么答案是:从几百几千到几个亿,都有可能!
第二种,我要做一个简单的手机app,多少钱?
其实,每个人对于简单的定义是不一样的,你说的简单具体简单到什么程度,又具体要做什么东西的,要知道很多人认为微信也挺简单的...没有具体的说明,根本就谈不上简单不简单!因此,对于这个问题,那么给出的回答则是:请说清楚具体功能要求先。
很多不负责的手机app开发商只会告诉客户开发一个手机app很简单,快点签合同开工吧!但是客户都说不清楚手机app具体需要哪些功能,开放商怎么会知道呢?如果寄希望于开发商为你思考细节,最可能的结果就是给你偷换概念,这样报价才会更低,增加选择他的机会!例如,一个客户只说要注册登录,而没有提要找回密码,这个不负责任的开放商也难得糊涂,没有提醒他,最后这手机app就没有找回密码功能。
收起阅读 »
uni-app引用npm第三方库
更新:从HBuilderX版本0.1.51或以上开始,uni-app支持使用npm安装第三方包。使用方式参考NPM支持。
以下为过期信息=================================================
HBuilderX版本0.1.50或以下版本参考以下文章使用。
uni-app 的目录结构,不是src、dist并列方式。
HBuilderX里的uni-app,根目录是相当于src,dist并放到了unpackage目录下。
src目录下是不能直接 npm install 引入第三方库的。
你可以在别处install,然后把相关文件copy到src下。
本文以 echarts 为例讲解 uni-app 如何引用 npm 第三方库。
1. 下载第三方库
uni-app 使用了 mpvue 的部分代码,所以我们的 echarts 库使用兼用 mpvue 版本的 mpvue-echarts,同时需要引用百度的 echarts。
下载流程如下:
- 创建一个空的文件夹如:test-echarts。
- 进入 test-echarts 打开命令行工具,执行 npm init 一路回车即可。
- 下载第三方库:npm install echarts mpvue-echarts --save。
- 进入 node_modules 目录,里面的三个目录:echarts、mpvue-echats 、zrender 就是我们需要的第三方库。
2. 创建uni-app工程
在 HBuilderX 里面新建 uni-app,将将刚才下载的三个文件夹拷贝到项目根目录,最终项目截图如下:

3. 在uni-app里面使用第三方库
和一般的 vue 项目引用第三方库的方法一样,如下所示,这样我们就能在工程里面使用 echarts 和 mpvue-echarts 了。
import * as echarts from 'echarts'
import mpvueEcharts from 'mpvue-echarts'
本示例源码在附件工程里面,下面是部分代码和效果截图:
<template>
<div class="container">
<mpvue-echarts :echarts="echarts" :onInit="onInit" />
</div>
</template>
<script>
import * as echarts from 'echarts'
import mpvueEcharts from 'mpvue-echarts'
function initChart(canvas, width, height) {
......
}
export default {
data() {
return {
echarts,
onInit: initChart
}
},
components: {
mpvueEcharts
}
}
</script>
<style>
.container {
flex: 1;
}
</style>
更新:从HBuilderX版本0.1.51或以上开始,uni-app支持使用npm安装第三方包。使用方式参考NPM支持。
以下为过期信息=================================================
HBuilderX版本0.1.50或以下版本参考以下文章使用。
uni-app 的目录结构,不是src、dist并列方式。
HBuilderX里的uni-app,根目录是相当于src,dist并放到了unpackage目录下。
src目录下是不能直接 npm install 引入第三方库的。
你可以在别处install,然后把相关文件copy到src下。
本文以 echarts 为例讲解 uni-app 如何引用 npm 第三方库。
1. 下载第三方库
uni-app 使用了 mpvue 的部分代码,所以我们的 echarts 库使用兼用 mpvue 版本的 mpvue-echarts,同时需要引用百度的 echarts。
下载流程如下:
- 创建一个空的文件夹如:test-echarts。
- 进入 test-echarts 打开命令行工具,执行 npm init 一路回车即可。
- 下载第三方库:npm install echarts mpvue-echarts --save。
- 进入 node_modules 目录,里面的三个目录:echarts、mpvue-echats 、zrender 就是我们需要的第三方库。
2. 创建uni-app工程
在 HBuilderX 里面新建 uni-app,将将刚才下载的三个文件夹拷贝到项目根目录,最终项目截图如下:
3. 在uni-app里面使用第三方库
和一般的 vue 项目引用第三方库的方法一样,如下所示,这样我们就能在工程里面使用 echarts 和 mpvue-echarts 了。
import * as echarts from 'echarts'
import mpvueEcharts from 'mpvue-echarts'
本示例源码在附件工程里面,下面是部分代码和效果截图:
<template>
<div class="container">
<mpvue-echarts :echarts="echarts" :onInit="onInit" />
</div>
</template>
<script>
import * as echarts from 'echarts'
import mpvueEcharts from 'mpvue-echarts'
function initChart(canvas, width, height) {
......
}
export default {
data() {
return {
echarts,
onInit: initChart
}
},
components: {
mpvueEcharts
}
}
</script>
<style>
.container {
flex: 1;
}
</style>
收起阅读 »

开发一款电商app的流程
大家对做菜的流程都不陌生,确定菜式,准备材料,烹饪食材后,即可出锅摆盘,正式开动。而开发一款电商app的流程,也可如此简单,不懂的小伙伴们可以看过来!
开发电商app的详细流程如下:
一、 需求确定
需求确定是第一步也是至关重要的一步,不仅因App的整个生命周期都以用户需求为中心,还因需求决定着app开发的方式,新兴的“SaaS”模块化技术开发电商App是现在比较流行的。
电商App开发平台需要与客户进行详细的沟通,梳理出客户的功能需求、周期、费用等内容,梳理出客户的具体要求,让电商App开发平台精准把握客户的定位,并构思功能如何实现。
如果客户对电商App的功能不是特别了解,可以参考力谱云app制作平台中,大量成功的电商App经典案例。
二、 素材准备
确定需求后,下一步是客户明确表达出产品理念和设计需求,电商App开发平台的UI设计师会应客户需求,设计商城图标、启动页等基本素材,供App填充内容。
在App开发过程中,需要与一些第三方平台进行接洽。客户需要提供一些必备素材,供第三方账号申请。
第三方支付:微信app支付,微信公众号支付,支付宝支付所需资料。
第三方登录:QQ登录,微信登录,微博登录所需资料。
应用市场上架:苹果应用市场、腾讯应用宝、360手机助手所需资料。
三、 应用制作
需求确定好,素材也完备了之后,接着就可以进入应用制作了。目前的主流开发技术普遍采用SaaS模式。
SaaS技术的优势在于,它能将功能组件模块化,并提前开发好。既能减少App制作成本,又能缩短App制作时间。
采用SaaS技术的电商App开发平台,只需应客户的功能需求,进行模块组建、商城配置,并对App进行内容填充、布局规划和初始设置即可,历时一两周就可以搭建完成一个电商App。
四、 测试
App制作完成后,还需要进行关于功能、性能等方面的测试,以保证App的正常运行与功能完整性。
五、 应用上架
产品交付后,开发好的App还需要提交到各应用市场进行上架。
力谱云App制作平台,作为目前仅有的全网合一开发平台,支持iOS App、安卓App、小程序、微商城、移动网站的同时搭建,还可帮助客户同时申请App在App Store、安卓应用市场及微信中上架。
六、 支付培训
电商App上线后,如何实操,无需客户忧心。可靠的电商App开发平台会提供专业的培训。目前,电商app开发平台力谱云向客户所提供的详细培训,包括平台使用、应用更新、运营管理等系列方面。
七、 App维护和更新
除此之外,App后期的维护和更新也是许多人关心的重点。
好的电商App开发平台会有专业的技术团队,进行技术维护,App更新升级,可以从团队规模、技术经验、以及案例方面进行调研。
当前,电商App开发平台力谱云,会定期、免费做软件的维护和更新。
如此一来,一个看似简单的app开发,经由以上流程至此就算全部完成了。
大家对做菜的流程都不陌生,确定菜式,准备材料,烹饪食材后,即可出锅摆盘,正式开动。而开发一款电商app的流程,也可如此简单,不懂的小伙伴们可以看过来!
开发电商app的详细流程如下:
一、 需求确定
需求确定是第一步也是至关重要的一步,不仅因App的整个生命周期都以用户需求为中心,还因需求决定着app开发的方式,新兴的“SaaS”模块化技术开发电商App是现在比较流行的。
电商App开发平台需要与客户进行详细的沟通,梳理出客户的功能需求、周期、费用等内容,梳理出客户的具体要求,让电商App开发平台精准把握客户的定位,并构思功能如何实现。
如果客户对电商App的功能不是特别了解,可以参考力谱云app制作平台中,大量成功的电商App经典案例。
二、 素材准备
确定需求后,下一步是客户明确表达出产品理念和设计需求,电商App开发平台的UI设计师会应客户需求,设计商城图标、启动页等基本素材,供App填充内容。
在App开发过程中,需要与一些第三方平台进行接洽。客户需要提供一些必备素材,供第三方账号申请。
第三方支付:微信app支付,微信公众号支付,支付宝支付所需资料。
第三方登录:QQ登录,微信登录,微博登录所需资料。
应用市场上架:苹果应用市场、腾讯应用宝、360手机助手所需资料。
三、 应用制作
需求确定好,素材也完备了之后,接着就可以进入应用制作了。目前的主流开发技术普遍采用SaaS模式。
SaaS技术的优势在于,它能将功能组件模块化,并提前开发好。既能减少App制作成本,又能缩短App制作时间。
采用SaaS技术的电商App开发平台,只需应客户的功能需求,进行模块组建、商城配置,并对App进行内容填充、布局规划和初始设置即可,历时一两周就可以搭建完成一个电商App。
四、 测试
App制作完成后,还需要进行关于功能、性能等方面的测试,以保证App的正常运行与功能完整性。
五、 应用上架
产品交付后,开发好的App还需要提交到各应用市场进行上架。
力谱云App制作平台,作为目前仅有的全网合一开发平台,支持iOS App、安卓App、小程序、微商城、移动网站的同时搭建,还可帮助客户同时申请App在App Store、安卓应用市场及微信中上架。
六、 支付培训
电商App上线后,如何实操,无需客户忧心。可靠的电商App开发平台会提供专业的培训。目前,电商app开发平台力谱云向客户所提供的详细培训,包括平台使用、应用更新、运营管理等系列方面。
七、 App维护和更新
除此之外,App后期的维护和更新也是许多人关心的重点。
好的电商App开发平台会有专业的技术团队,进行技术维护,App更新升级,可以从团队规模、技术经验、以及案例方面进行调研。
当前,电商App开发平台力谱云,会定期、免费做软件的维护和更新。
如此一来,一个看似简单的app开发,经由以上流程至此就算全部完成了。

HBuilder X对vue的支持有多强?
HBuilderX中使用vue,如果是打开vue文件,会自动挂载vue语法库。
如果是HTML文件里引用vue框架,需要点右下角的语法提示库,选择vue语法库。
我们更推荐开发者使用vue单文件规范,直接打开vue文件。
注意:如果文件不在项目下,而是单独的文件,无法挂载语法库,请在左侧项目管理器建个项目,打开项目里的文件进行体验。
1.语法高亮
除了vue的普通语法高亮支持,HBuilderX还支持各种表达式语法,以及script和style支持的其他语言如less、scss、stylus、typescript等高亮,无需安装插件。
2.代码提示
2.1 API提示及帮助
提示不止是要全,而且要准。不能把所有词都猜一遍列出来,该有什么就有什么,清晰可信赖。
既要写的快,又要写不错。
除了完善的提示,在代码助手右侧还能看到清晰的帮助描述,对api进行说明,还有vue官网的api链接,点击即可直达vue官网指定页面。非常适合学习参考。
2.2 this的精准识别
2.3 语法提示
2.4 指令提示
2.5 自定义组件提示
HBuilderX的组件语法提示比其他工具都要强大,组件的标签、属性都可以直接被提示出来。
2.6 doc
HBuilderX支持强大的vue doc,是vue组件开发者的利器,通过类jsdoc的写法,可让你的组件实现全面的代码提示和帮助。详见https://ask.dcloud.net.cn/article/35814
2.7 兼容vscode vetur插件中的vue规范
一些vue的组件库,已经按照vetur规范制作语法提示库,比如Element UI、Onsen UI、Bootstrap Vue等框架。
这些框架npm安装或在HBuilderX新建模板中选择安装,可以直接实现代码提示。如下图
2.8 常用代码块/自定义代码块
敲v,在拉出的代码助手列表里可以看到大量vue代码块。
你也可以在工具-代码块设置-vue代码块里自己添加更多代码块。
2.9 vue router
支持提示$router、$route 所有实例方法、属性
2.10 vuex
支持提示State、Mutation、action等,并支持转到定义
2.11 其他
另外其他开发工具常见的emmet、d.ts,HBuilderX也均良好支持。
3.帮助文档
光标放到api处,按下F1,可直接在右侧打开对应的帮助文档,不用切屏,边看文档边改代码,见下图:
4.转到定义
按下alt+鼠标单击,即可对各种变量、样式、方法的引用溯源,在template、script、style中来回跳转。非常强大而灵活。
按下ctrl+alt+单击,还可在旁边以分栏方式打开定义处,方便并排查看。
5.重构或选择相同语法词
如果你想看某个变量在哪里被引用,或者选中所有变量进行改名,那么点右键->选择相同变量(ctrl+shift+e)。
如下图可见,“list”在文中出现很多相同单词,但只有那几个准确的变量被选中:
详情参考:https://ask.dcloud.net.cn/article/35732
6.语法校验
首先需要在插件管理中安装eslint-plugin-vue,然后点工具-验证本文档语法,或在vue文档保存时也会自动验证。
插件的管理设置如配置快捷键、是否在保存时自动触发,在工具-外部命令-eslint-plugin-vue里的插件配置里,详见http://ask.dcloud.net.cn/article/19599
如果要修改eslint的校验规则,在工具-外部命令-eslint-plugin-vue里的.eslintrc.js。
7. 大纲
选择视图菜单-显示文档结构图,或右键菜单里选择,即可在左侧出现大纲。点击左侧即可快读跳转右侧。
8. 免命令行使用vue
如果你不喜欢配置复杂的node环境,这并不影响你快速进入vue世界。
HBuilderX内置了终端插件和node环境。
在新建界面,可以可视化新建vue项目,而不需要配cli。
在运行菜单里,可以可视化的运行和build。
在引入插件时也无需安装node模块,uni-app插件市场可以可视化的导入插件(仅适用于uni-app),详见uni-app插件市场
HBuilderX中使用vue,如果是打开vue文件,会自动挂载vue语法库。
如果是HTML文件里引用vue框架,需要点右下角的语法提示库,选择vue语法库。
我们更推荐开发者使用vue单文件规范,直接打开vue文件。
注意:如果文件不在项目下,而是单独的文件,无法挂载语法库,请在左侧项目管理器建个项目,打开项目里的文件进行体验。
1.语法高亮
除了vue的普通语法高亮支持,HBuilderX还支持各种表达式语法,以及script和style支持的其他语言如less、scss、stylus、typescript等高亮,无需安装插件。
2.代码提示
2.1 API提示及帮助
提示不止是要全,而且要准。不能把所有词都猜一遍列出来,该有什么就有什么,清晰可信赖。
既要写的快,又要写不错。
除了完善的提示,在代码助手右侧还能看到清晰的帮助描述,对api进行说明,还有vue官网的api链接,点击即可直达vue官网指定页面。非常适合学习参考。
2.2 this的精准识别
2.3 语法提示
2.4 指令提示
2.5 自定义组件提示
HBuilderX的组件语法提示比其他工具都要强大,组件的标签、属性都可以直接被提示出来。
2.6 doc
HBuilderX支持强大的vue doc,是vue组件开发者的利器,通过类jsdoc的写法,可让你的组件实现全面的代码提示和帮助。详见https://ask.dcloud.net.cn/article/35814
2.7 兼容vscode vetur插件中的vue规范
一些vue的组件库,已经按照vetur规范制作语法提示库,比如Element UI、Onsen UI、Bootstrap Vue等框架。
这些框架npm安装或在HBuilderX新建模板中选择安装,可以直接实现代码提示。如下图
2.8 常用代码块/自定义代码块
敲v,在拉出的代码助手列表里可以看到大量vue代码块。
你也可以在工具-代码块设置-vue代码块里自己添加更多代码块。
2.9 vue router
支持提示$router、$route 所有实例方法、属性
2.10 vuex
支持提示State、Mutation、action等,并支持转到定义
2.11 其他
另外其他开发工具常见的emmet、d.ts,HBuilderX也均良好支持。
3.帮助文档
光标放到api处,按下F1,可直接在右侧打开对应的帮助文档,不用切屏,边看文档边改代码,见下图:
4.转到定义
按下alt+鼠标单击,即可对各种变量、样式、方法的引用溯源,在template、script、style中来回跳转。非常强大而灵活。
按下ctrl+alt+单击,还可在旁边以分栏方式打开定义处,方便并排查看。
5.重构或选择相同语法词
如果你想看某个变量在哪里被引用,或者选中所有变量进行改名,那么点右键->选择相同变量(ctrl+shift+e)。
如下图可见,“list”在文中出现很多相同单词,但只有那几个准确的变量被选中:
详情参考:https://ask.dcloud.net.cn/article/35732
6.语法校验
首先需要在插件管理中安装eslint-plugin-vue,然后点工具-验证本文档语法,或在vue文档保存时也会自动验证。
插件的管理设置如配置快捷键、是否在保存时自动触发,在工具-外部命令-eslint-plugin-vue里的插件配置里,详见http://ask.dcloud.net.cn/article/19599
如果要修改eslint的校验规则,在工具-外部命令-eslint-plugin-vue里的.eslintrc.js。
7. 大纲
选择视图菜单-显示文档结构图,或右键菜单里选择,即可在左侧出现大纲。点击左侧即可快读跳转右侧。
8. 免命令行使用vue
如果你不喜欢配置复杂的node环境,这并不影响你快速进入vue世界。
HBuilderX内置了终端插件和node环境。
在新建界面,可以可视化新建vue项目,而不需要配cli。
在运行菜单里,可以可视化的运行和build。
在引入插件时也无需安装node模块,uni-app插件市场可以可视化的导入插件(仅适用于uni-app),详见uni-app插件市场
收起阅读 »
大道至简 知易行难 C# 完成WebSocket demo 用GoEasy实现Hello world
uniapp websocket体验demo:https://ext.dcloud.net.cn/plugin?id=1334
在现在Time cost和Labor cost进入项目并占据重要位置的开发理念里,当一款项目的目标、理念以及开发的要求非常明确时,怎样减少时间、人力成本以及降低开发风险以及成为一个项目在开发初期需要确定的重要因素。
大道至简 知易行难,作为一名开发人员站在开发的角度上来讲,怎样去攻克一个技术难题或者需要学习新的语言、技术去应用于新的项目,已经不会是最大的问题,而时间成本以及人力成本会是一个团队以及公司去考虑的侧重点。怎样去减少这些开发成本最终达到同样的期望效果,今天我给大家介绍一款产品:GoEasy, 简单而强大的三方WebSocket。
我为什么会用到GoEasy,最近公司推p2p新项目,在订单提醒这一块因为新项目配备开发人员较少,就算加班也不能在estimated time内完成。经过会议决定使用三方的产品来做这一块。筛选中最后决定选择看起来最简单的GoEasy。
只需要9分钟,从注册到推送实现
1 登录 www.goeasy.io
2 注册账号并登录
3 登录进入后台
我的应用→创建应用→选择地区→获取APP keys
这里选择地区有3个选项可以选择,华东(杭州)、美国东部(弗吉尼亚)、新加坡,根据产品使用用户所在地来选择效果最佳。
点开APP keys 查看
我们会获得2个对应的key,一个只能用来订阅channel来接收消息的Subscribe key和一个既可以发送消息也可以订阅channel来接受消息的Common key。
OK 现在用一个demo来展示,为什么只需要9分钟。
服务器→客户端
这里我用C#来演示,当然 GoEasy适用于任何语言和浏览器。
先用C#写一个Demo
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string postDataStr = "appkey=your app keyXXXXXXXXXXXXXXXXXXXXXXXXXXX";
//appkey
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://rest-hangzhou.goeasy.io/publish");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
request.ContentLength = Encoding.UTF8.GetByteCount(postDataStr);
Stream myRequestStream = request.GetRequestStream();
byte[] data = Encoding.UTF8.GetBytes(postDataStr);
myRequestStream.Write(data, 0, data.Length);
Console.WriteLine(data);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream,
Encoding.GetEncoding("utf-8"));
string retString = myStreamReader.ReadToEnd();
Console.WriteLine(retString);
Console.ReadLine();
myStreamReader.Close();
myResponseStream.Close();
}
}
}
用html 写一个接收端
<html>
<head>
<script type="text/javascript" src="https://cdn-hangzhou.goeasy.io/goeasy.js"></script>
<script type="text/javascript">
var goeasy = new GoEasy({
appkey: 'your app keyXXXXXXXXXXXXXX'
});
goeasy.subscribe({
channel: 'demo',
onMessage: function(message){
//收到消息的第一行,打出日志,以这个时间作为检查的标准
alert('收到:' message.content);
}
});
</script>
</head>
</html>
这里我用的是Common key,在实战项目中,接收端使用Common key会存在安全缺陷,建议使用Subscribe key。
还有需要注意的一点就是,CDN host和Rest host 取决于你在创建应用时的选择。
最后从页面接受结果可以看到与C#中demo content推送的内容一致。
同时,我们也可以完成客户端→客户端的推送
发送端
<!DOCTYPE html>
<html>
<html>
<head>
<script type="text/javascript" src="https://cdn-hangzhou.goeasy.io/goeasy.js"></script>
<script type="text/javascript">
var goeasy = new GoEasy({
appkey: 'your app keyXXXXXXXXXXXXXX'
});
function publishMessage() {
var publishMessage = document.getElementById("content").value;
goeasy.publish({
channel: 'demo',
message: publishMessage,
onFailed: function (error) {
alert(error.code " : " error.content);
},
onSuccess: function(){
document.getElementById("content").value='';
}
});
}
</script>
</head>
<body>
<textarea rows="3" cols="20" id="content">
uniapp websocket体验demo:https://ext.dcloud.net.cn/plugin?id=1334
在现在Time cost和Labor cost进入项目并占据重要位置的开发理念里,当一款项目的目标、理念以及开发的要求非常明确时,怎样减少时间、人力成本以及降低开发风险以及成为一个项目在开发初期需要确定的重要因素。
大道至简 知易行难,作为一名开发人员站在开发的角度上来讲,怎样去攻克一个技术难题或者需要学习新的语言、技术去应用于新的项目,已经不会是最大的问题,而时间成本以及人力成本会是一个团队以及公司去考虑的侧重点。怎样去减少这些开发成本最终达到同样的期望效果,今天我给大家介绍一款产品:GoEasy, 简单而强大的三方WebSocket。
我为什么会用到GoEasy,最近公司推p2p新项目,在订单提醒这一块因为新项目配备开发人员较少,就算加班也不能在estimated time内完成。经过会议决定使用三方的产品来做这一块。筛选中最后决定选择看起来最简单的GoEasy。
只需要9分钟,从注册到推送实现
1 登录 www.goeasy.io
2 注册账号并登录
3 登录进入后台
我的应用→创建应用→选择地区→获取APP keys
这里选择地区有3个选项可以选择,华东(杭州)、美国东部(弗吉尼亚)、新加坡,根据产品使用用户所在地来选择效果最佳。
点开APP keys 查看
我们会获得2个对应的key,一个只能用来订阅channel来接收消息的Subscribe key和一个既可以发送消息也可以订阅channel来接受消息的Common key。
OK 现在用一个demo来展示,为什么只需要9分钟。
服务器→客户端
这里我用C#来演示,当然 GoEasy适用于任何语言和浏览器。
先用C#写一个Demo
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string postDataStr = "appkey=your app keyXXXXXXXXXXXXXXXXXXXXXXXXXXX";
//appkey
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://rest-hangzhou.goeasy.io/publish");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
request.ContentLength = Encoding.UTF8.GetByteCount(postDataStr);
Stream myRequestStream = request.GetRequestStream();
byte[] data = Encoding.UTF8.GetBytes(postDataStr);
myRequestStream.Write(data, 0, data.Length);
Console.WriteLine(data);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream,
Encoding.GetEncoding("utf-8"));
string retString = myStreamReader.ReadToEnd();
Console.WriteLine(retString);
Console.ReadLine();
myStreamReader.Close();
myResponseStream.Close();
}
}
}
用html 写一个接收端
<html>
<head>
<script type="text/javascript" src="https://cdn-hangzhou.goeasy.io/goeasy.js"></script>
<script type="text/javascript">
var goeasy = new GoEasy({
appkey: 'your app keyXXXXXXXXXXXXXX'
});
goeasy.subscribe({
channel: 'demo',
onMessage: function(message){
//收到消息的第一行,打出日志,以这个时间作为检查的标准
alert('收到:' message.content);
}
});
</script>
</head>
</html>
这里我用的是Common key,在实战项目中,接收端使用Common key会存在安全缺陷,建议使用Subscribe key。
还有需要注意的一点就是,CDN host和Rest host 取决于你在创建应用时的选择。
最后从页面接受结果可以看到与C#中demo content推送的内容一致。
同时,我们也可以完成客户端→客户端的推送
发送端
<!DOCTYPE html>
<html>
<html>
<head>
<script type="text/javascript" src="https://cdn-hangzhou.goeasy.io/goeasy.js"></script>
<script type="text/javascript">
var goeasy = new GoEasy({
appkey: 'your app keyXXXXXXXXXXXXXX'
});
function publishMessage() {
var publishMessage = document.getElementById("content").value;
goeasy.publish({
channel: 'demo',
message: publishMessage,
onFailed: function (error) {
alert(error.code " : " error.content);
},
onSuccess: function(){
document.getElementById("content").value='';
}
});
}
</script>
</head>
<body>
<textarea rows="3" cols="20" id="content">
收起阅读 »