
周报(20180330):今天你打包了么?
热门话题
本周最热(悲)门(伤)的话题,就是云端打包了。
- 打包时一直显示“正在制作安装包”:本周不知道为什么,白天打包的任务尤其是安卓比较多,难道年后第一波发版潮来了?不是服务器出问题了,请各位小伙伴不要慌张,耐心排队等待。
- 【报Bug】微信登录 auth.login 在华为手机上出现闪退:云端打包的问题,已经修复并且更新至 Alpha 版打包机,会尽快更新至正式版。
- 生成本地打包资源ios的,xcode运行项目启动页后广告怎么关闭?:iOS 本地(离线)打包始终有开屏广告的问题,已经修复并且更新了 SDK。
- 使用hello 5+ 创建项目 二维码扫描成功后闪退:确认一下 manifest.json 中权限配置部分是否勾选了 android.permission.VIBRATE。
- 【报Bug】微信H5支付问题:其实不是 bug,而是页面组没有配置好,导致微信的校验无法通过。wap2app 项目中,需要认真处理页面组的配置,才会避免更多此类问题。
开源项目
uni-migration:统一转换器,可实现将小程序项目转换为快应用、UniApp项目。
无论是使用 HBuilderX 还是 uni-migration,转换或运行时出现问题后,请尽可能提供可以重现问题的示例项目。如果因为是公司的项目,请向领导反馈后提供一个简单的 demo,否则拿不到代码没有办法定位问题。
关于应用中的广告,下载广告演示示例 App 体验 DCloud 广告平台的广告。除了这个示例里面的广告形式外,如果出现其它悬浮或者插入的广告多半是被劫持了。
问题清单
- 小程序转快应用一直有问题:这种情况,请尽可能提供示例项目。
- http://dev.dcloud.net.cn/ 页面我创建的应用删除不掉,怎么联系管理员?:按照帖子中的回复,邮件反馈。
- UNIAPP开发遇到一下几点问题:UniApp 还在不断完善中,欢迎各位小伙伴体验并反馈。
- 关于mui框架跨域问题,很多人说在浏览器上,无法调用后台,在真机上调试可以,但是,我用Android、IOS都试过了,无法调用后台接口。:又是跨域,动动手搜索一下有很多答案的。
- 怎么调用支付宝沙箱环境:5+API 不支持沙箱环境,一分钱大法好。
- wap2app如何整合腾讯X5内核浏览:这个真的不支持,开发中遇到问题重要的是想办法解决。
iOS 近期问题
- iOS审核不通过,使用了私有APIxxxx:按照帖子中的回复,尝试发邮件解释下。
再说两句
HBuilder为什么没有Linux版:这个问题真的是老黄历了,但总想说的什么。每个人有自己的想法和意愿,DCloud 无法满足所有开发者的需求。如果你真的认同 DCloud,喜欢 HBuilder,请移步需求墙:http://dev.dcloud.net.cn/wish/。
最后
本周的报告就是这些,希望能对大家有所帮助。同时,也希望更多的小伙伴在社区分享自己的经验心得,交流学习。
祝大家周末愉快。
热门话题
本周最热(悲)门(伤)的话题,就是云端打包了。
- 打包时一直显示“正在制作安装包”:本周不知道为什么,白天打包的任务尤其是安卓比较多,难道年后第一波发版潮来了?不是服务器出问题了,请各位小伙伴不要慌张,耐心排队等待。
- 【报Bug】微信登录 auth.login 在华为手机上出现闪退:云端打包的问题,已经修复并且更新至 Alpha 版打包机,会尽快更新至正式版。
- 生成本地打包资源ios的,xcode运行项目启动页后广告怎么关闭?:iOS 本地(离线)打包始终有开屏广告的问题,已经修复并且更新了 SDK。
- 使用hello 5+ 创建项目 二维码扫描成功后闪退:确认一下 manifest.json 中权限配置部分是否勾选了 android.permission.VIBRATE。
- 【报Bug】微信H5支付问题:其实不是 bug,而是页面组没有配置好,导致微信的校验无法通过。wap2app 项目中,需要认真处理页面组的配置,才会避免更多此类问题。
开源项目
uni-migration:统一转换器,可实现将小程序项目转换为快应用、UniApp项目。
无论是使用 HBuilderX 还是 uni-migration,转换或运行时出现问题后,请尽可能提供可以重现问题的示例项目。如果因为是公司的项目,请向领导反馈后提供一个简单的 demo,否则拿不到代码没有办法定位问题。
关于应用中的广告,下载广告演示示例 App 体验 DCloud 广告平台的广告。除了这个示例里面的广告形式外,如果出现其它悬浮或者插入的广告多半是被劫持了。
问题清单
- 小程序转快应用一直有问题:这种情况,请尽可能提供示例项目。
- http://dev.dcloud.net.cn/ 页面我创建的应用删除不掉,怎么联系管理员?:按照帖子中的回复,邮件反馈。
- UNIAPP开发遇到一下几点问题:UniApp 还在不断完善中,欢迎各位小伙伴体验并反馈。
- 关于mui框架跨域问题,很多人说在浏览器上,无法调用后台,在真机上调试可以,但是,我用Android、IOS都试过了,无法调用后台接口。:又是跨域,动动手搜索一下有很多答案的。
- 怎么调用支付宝沙箱环境:5+API 不支持沙箱环境,一分钱大法好。
- wap2app如何整合腾讯X5内核浏览:这个真的不支持,开发中遇到问题重要的是想办法解决。
iOS 近期问题
- iOS审核不通过,使用了私有APIxxxx:按照帖子中的回复,尝试发邮件解释下。
再说两句
HBuilder为什么没有Linux版:这个问题真的是老黄历了,但总想说的什么。每个人有自己的想法和意愿,DCloud 无法满足所有开发者的需求。如果你真的认同 DCloud,喜欢 HBuilder,请移步需求墙:http://dev.dcloud.net.cn/wish/。
最后
本周的报告就是这些,希望能对大家有所帮助。同时,也希望更多的小伙伴在社区分享自己的经验心得,交流学习。
祝大家周末愉快。

setJsFile与appendJsFile的区别
最近遇到setJsFile、appendJsFile无效不能注入js文件问题。
经过不断调试,原来这两个是有区别的。
这两个都可以设置js文件加载注入,区别在于:
http://html5plus.org/doc/zh_cn/webview.html#plus.webview.WebviewObject.setJsFile
setJsFile:设置新的JS文件后将清空之前设置的值。重点在这句话。也就是后台如果一直setJsFile,那么只有最后一个js文件生效。
appendJsFile:添加多个js文件将按照添加的先后顺序执行。也就是说,这个可以一直追加。如果有多个文件,请用这个,不然,坑死……
话说,这论坛人气真不行。
var w = plus.webview.getWebviewById(webviewid);
if (null == w){
w = plus.webview.create(url, webviewid, styles, extras);
w.setJsFile('_www/js/mui.min.js');
w.appendJsFile('_www/js/mui-ext.js');
w.appendJsFile('_www/js/app-config.js');
w.appendJsFile('_www/js/app-getdata.js');
w.appendJsFile('_www/js/app-page.js');
w.appendJsFile('_www/js/app-owner.js');
w.appendJsFile('_www/js/md5.min.js');
}
附上测试工程,内含Backup V1.4.bat一键打包备份工具(需要安装7z)。
最近遇到setJsFile、appendJsFile无效不能注入js文件问题。
经过不断调试,原来这两个是有区别的。
这两个都可以设置js文件加载注入,区别在于:
http://html5plus.org/doc/zh_cn/webview.html#plus.webview.WebviewObject.setJsFile
setJsFile:设置新的JS文件后将清空之前设置的值。重点在这句话。也就是后台如果一直setJsFile,那么只有最后一个js文件生效。
appendJsFile:添加多个js文件将按照添加的先后顺序执行。也就是说,这个可以一直追加。如果有多个文件,请用这个,不然,坑死……
话说,这论坛人气真不行。
var w = plus.webview.getWebviewById(webviewid);
if (null == w){
w = plus.webview.create(url, webviewid, styles, extras);
w.setJsFile('_www/js/mui.min.js');
w.appendJsFile('_www/js/mui-ext.js');
w.appendJsFile('_www/js/app-config.js');
w.appendJsFile('_www/js/app-getdata.js');
w.appendJsFile('_www/js/app-page.js');
w.appendJsFile('_www/js/app-owner.js');
w.appendJsFile('_www/js/md5.min.js');
}
附上测试工程,内含Backup V1.4.bat一键打包备份工具(需要安装7z)。
收起阅读 »
如何开发app软件,郑州app开发认为这些很重要
人的记忆有限,不可能能记住所有的事,特别是面对创业。就拿郑州app开发来说,一个app有很多的功能点,不可能全部记住。如果你能根据你的战略、商业模式等把想要实现的app功能列出来,在和外部团队沟通时,不就不会遗漏了吗?所以需要投资者做到以下几点才行。
1、让自己的思路变得有条理
当看到所有任务都清晰地显示在眼前,对该做的事情也有个底,这样也会慢慢发现,其实开发一个app、创业也没有那么难,一个个的去攻破、实现就可以了。这样不管和外部的供应商还是经销商还是用户、其他合作伙伴,沟通时心里就会有底,而且非常的有条理,和谁见面、什么时候见面、聊什么都会很清晰。
2、优化大脑,提高沟通效率
大脑就像电脑的C盘,装的东西多了,电脑就变得卡了,所以把一些资料存放在其他硬盘,能让它运行得更快。该记下来的就记下来,不要让大脑太累了,让大脑做真正该做的事。创业者,每天要做的事情很多,要记的事情也很多。如果你想找外部团队开发app时,如果能用思维脑图把你想说的画出来,不就节省了很多你和软件开发公司沟通的问题了吗?而且更高效有效。
3、防止记忆或沟通的遗漏
有创业者想做电商app,自己思考了一些这个项目怎么来做,供应商、经销商、平台、线下等等每一处怎么来做都有了自己的想法,但是在具体项目找软件开发公司来做的时候,总是会有些人问些问题把自己问住,或者沟通不顺畅,又或者总是沟通有遗漏的地方。最后项目开工了,问题就接踵而至,而究其根本就是创业者自己没有想明白。
所以,如果你现在也有创业的想法,也想做一个app,现在就不妨用脑图软件把自己脑海里想的全部画出来,可能就会发现很多之前没有想到的盲点。有些创业者也是跟你谈想法,拿一个别人的app或者微信、小程序过来,说要做一个一模一样的,但是问到涉及后台的问题,自己又讲不清了。有歌清晰的app开发思路,和郑州app开发公司合作起来就非常简单了。本文由郑州app开发http://www.appsaa.com编辑整理,如需转载请注明出处。
人的记忆有限,不可能能记住所有的事,特别是面对创业。就拿郑州app开发来说,一个app有很多的功能点,不可能全部记住。如果你能根据你的战略、商业模式等把想要实现的app功能列出来,在和外部团队沟通时,不就不会遗漏了吗?所以需要投资者做到以下几点才行。
1、让自己的思路变得有条理
当看到所有任务都清晰地显示在眼前,对该做的事情也有个底,这样也会慢慢发现,其实开发一个app、创业也没有那么难,一个个的去攻破、实现就可以了。这样不管和外部的供应商还是经销商还是用户、其他合作伙伴,沟通时心里就会有底,而且非常的有条理,和谁见面、什么时候见面、聊什么都会很清晰。
2、优化大脑,提高沟通效率
大脑就像电脑的C盘,装的东西多了,电脑就变得卡了,所以把一些资料存放在其他硬盘,能让它运行得更快。该记下来的就记下来,不要让大脑太累了,让大脑做真正该做的事。创业者,每天要做的事情很多,要记的事情也很多。如果你想找外部团队开发app时,如果能用思维脑图把你想说的画出来,不就节省了很多你和软件开发公司沟通的问题了吗?而且更高效有效。
3、防止记忆或沟通的遗漏
有创业者想做电商app,自己思考了一些这个项目怎么来做,供应商、经销商、平台、线下等等每一处怎么来做都有了自己的想法,但是在具体项目找软件开发公司来做的时候,总是会有些人问些问题把自己问住,或者沟通不顺畅,又或者总是沟通有遗漏的地方。最后项目开工了,问题就接踵而至,而究其根本就是创业者自己没有想明白。
所以,如果你现在也有创业的想法,也想做一个app,现在就不妨用脑图软件把自己脑海里想的全部画出来,可能就会发现很多之前没有想到的盲点。有些创业者也是跟你谈想法,拿一个别人的app或者微信、小程序过来,说要做一个一模一样的,但是问到涉及后台的问题,自己又讲不清了。有歌清晰的app开发思路,和郑州app开发公司合作起来就非常简单了。本文由郑州app开发http://www.appsaa.com编辑整理,如需转载请注明出处。
收起阅读 »
在标题栏中设置左右切换按钮功能
在工作中大家可能有这种需求,在一个主页面中镶嵌两个子页面,
这两个子页面可以通过主页面中的一个按钮去控制子页面的切换。
下面有效果图。
==================================================
主页面:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title>市场分布</title>
<link rel="stylesheet" type="text/css" href="../../css/mui.min.css"/>
<link rel="stylesheet" href="../../css/iconfont.css" />
<style type="text/css">
modeImg{
color: #C1131D;
}
</style>
</head>
<body>
<header class="mui-bar mui-bar-nav">
<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
<h1 class="mui-title">市场分布</h1>
<a class="mui-pull-right" id="changeImg"><span id="modeImg" class="mui-icon mui-icon-right-nav iconfont icon-fenbushinengyuanguihuajishu"></span></a>
</header>
<script type="text/javascript" src="../../js/mui.min.js" ></script>
<script type="text/javascript" src="../../js/app.js" ></script>
<script type="text/javascript" src="../../js/base.js" ></script>
<script type="text/javascript" src="../../js/webviewMapListGroup.js"></script>
<script type="text/javascript">
var flag = true;
mui.init({
swipeBack:false
});
mui.plusReady(function(){
var group = new webviewGroup('marketDistribution',{
items:[
{
id: "marketDistributionList.html",
url: "marketDistributionList.html",
styles:{
top:"40px",
bottom:"0px",
hardwareAccelerated:true //开启硬件加速
},
extras:{}
},{
id: "marketDistributionMap.html",
url: "marketDistributionMap.html",
styles:{
top:"40px",
bottom:"0px",
hardwareAccelerated:true //开启硬件加速
},
extras:{}
}],
onChange: function(obj) {
var index = parseInt(obj.index);
var myimg = document.getElementById("modeImg");
if(index == 1){
//console.log("地图模式="+index);
myimg.classList.remove("icon-fenbushinengyuanguihuajishu");
myimg.classList.add("icon-chazhaobiaodanliebiao");
}else{
//console.log("列表模式="+index);
myimg.classList.remove("icon-chazhaobiaodanliebiao");
myimg.classList.add("icon-fenbushinengyuanguihuajishu");
}
}
});
//图标切换事件
document.getElementById("changeImg").addEventListener('tap',function(e) {
if(flag){
group.switchTab("marketDistributionMap.html");
flag = false;
}else{
group.switchTab("marketDistributionList.html");
flag = true;
}
});
});
</script>
</body>
</html>
子页面1:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title>市场分布-列表</title>
<link rel="stylesheet" type="text/css" href="../../css/mui.min.css"/>
<link rel="stylesheet" href="../../css/iconfont.css" />
</head>
<body>
<div class="mui-content">
<div class="two-nav">
<div id="distributor" data-f="11" class="pan-title mui-pull-left onclick-title">
经销商列表
</div>
<div id="customer" data-f="22" class="pan-title mui-pull-right">
客户列表
</div>
</div>
</div>
<div class="pan-content">
<ul class="mui-table-view" id="listCust">
</ul>
</div>
</body>
</html>
子页面2:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<link rel="stylesheet" type="text/css" href="../../css/mui.min.css"/>
<title></title>
</head>
<body>
<div id="allmap"></div>
</body>
<script type="text/javascript" src="../../js/mui.min.js"></script>
<script type="text/javascript" src="../../js/app.js"></script>
<script type="text/javascript" src="../../js/base.js"></script>
</html>
在工作中大家可能有这种需求,在一个主页面中镶嵌两个子页面,
这两个子页面可以通过主页面中的一个按钮去控制子页面的切换。
下面有效果图。
==================================================
主页面:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title>市场分布</title>
<link rel="stylesheet" type="text/css" href="../../css/mui.min.css"/>
<link rel="stylesheet" href="../../css/iconfont.css" />
<style type="text/css">
modeImg{
color: #C1131D;
}
</style>
</head>
<body>
<header class="mui-bar mui-bar-nav">
<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
<h1 class="mui-title">市场分布</h1>
<a class="mui-pull-right" id="changeImg"><span id="modeImg" class="mui-icon mui-icon-right-nav iconfont icon-fenbushinengyuanguihuajishu"></span></a>
</header>
<script type="text/javascript" src="../../js/mui.min.js" ></script>
<script type="text/javascript" src="../../js/app.js" ></script>
<script type="text/javascript" src="../../js/base.js" ></script>
<script type="text/javascript" src="../../js/webviewMapListGroup.js"></script>
<script type="text/javascript">
var flag = true;
mui.init({
swipeBack:false
});
mui.plusReady(function(){
var group = new webviewGroup('marketDistribution',{
items:[
{
id: "marketDistributionList.html",
url: "marketDistributionList.html",
styles:{
top:"40px",
bottom:"0px",
hardwareAccelerated:true //开启硬件加速
},
extras:{}
},{
id: "marketDistributionMap.html",
url: "marketDistributionMap.html",
styles:{
top:"40px",
bottom:"0px",
hardwareAccelerated:true //开启硬件加速
},
extras:{}
}],
onChange: function(obj) {
var index = parseInt(obj.index);
var myimg = document.getElementById("modeImg");
if(index == 1){
//console.log("地图模式="+index);
myimg.classList.remove("icon-fenbushinengyuanguihuajishu");
myimg.classList.add("icon-chazhaobiaodanliebiao");
}else{
//console.log("列表模式="+index);
myimg.classList.remove("icon-chazhaobiaodanliebiao");
myimg.classList.add("icon-fenbushinengyuanguihuajishu");
}
}
});
//图标切换事件
document.getElementById("changeImg").addEventListener('tap',function(e) {
if(flag){
group.switchTab("marketDistributionMap.html");
flag = false;
}else{
group.switchTab("marketDistributionList.html");
flag = true;
}
});
});
</script>
</body>
</html>
子页面1:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title>市场分布-列表</title>
<link rel="stylesheet" type="text/css" href="../../css/mui.min.css"/>
<link rel="stylesheet" href="../../css/iconfont.css" />
</head>
<body>
<div class="mui-content">
<div class="two-nav">
<div id="distributor" data-f="11" class="pan-title mui-pull-left onclick-title">
经销商列表
</div>
<div id="customer" data-f="22" class="pan-title mui-pull-right">
客户列表
</div>
</div>
</div>
<div class="pan-content">
<ul class="mui-table-view" id="listCust">
</ul>
</div>
</body>
</html>
子页面2:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<link rel="stylesheet" type="text/css" href="../../css/mui.min.css"/>
<title></title>
</head>
<body>
<div id="allmap"></div>
</body>
<script type="text/javascript" src="../../js/mui.min.js"></script>
<script type="text/javascript" src="../../js/app.js"></script>
<script type="text/javascript" src="../../js/base.js"></script>
</html>

急急急 IOS 离线打包 Profile doesn't include thebeta-reports-active
Profile doesn't include the beta-reports-active entitlement and doesn't match the entitlements file's value for the application-identifier entitlement.
Profile doesn't include the beta-reports-active entitlement and doesn't match the entitlements file's value for the application-identifier entitlement.
收起阅读 »
MUI HTML5+入门学习视频,看着挺系统,分享一下
视频地址:视频地址
课程目标
1、掌握MUI知识体系结构,能够使用WEB开发相关技术搭建移动端APP前端架构,实现支付宝案例
2、掌握HTML5+ 相关API的使用,可以调用手机或其它设备的功能接口,例如拍照、相册、扫码、通讯录、语音等相关功能接口。
3、掌握Hbuilder的用法,完成应用调试打包
适用人群
有一定前端基础,希望使用web相关技术实现移动端混合应用开发的同学。
课程简介
1、授课过程会对MUI涉及相关知识体系内容进行讲解,内容包含,项目创建、项目调试、第三方图标库引入、MUI窗口对象、MUI事件处理、MUI栅格系统、MUI元素排版、常用UI组件介绍、页面间传值、页面刷新、页面加载、数据获取。
HTML5+相关API讲解:从语法结构讲解HTML5+相关接口,实现手机系统原生功能,例如扫码、拍照、地理位置获取、窗口处理等相关功能。
2、案例介绍:将仿支付宝案例穿插到课程讲解中,结合相应知识一步一步实现支付宝相关界面。
页面效果如图所示:
视频地址:视频地址
课程目标
1、掌握MUI知识体系结构,能够使用WEB开发相关技术搭建移动端APP前端架构,实现支付宝案例
2、掌握HTML5+ 相关API的使用,可以调用手机或其它设备的功能接口,例如拍照、相册、扫码、通讯录、语音等相关功能接口。
3、掌握Hbuilder的用法,完成应用调试打包
适用人群
有一定前端基础,希望使用web相关技术实现移动端混合应用开发的同学。
课程简介
1、授课过程会对MUI涉及相关知识体系内容进行讲解,内容包含,项目创建、项目调试、第三方图标库引入、MUI窗口对象、MUI事件处理、MUI栅格系统、MUI元素排版、常用UI组件介绍、页面间传值、页面刷新、页面加载、数据获取。
HTML5+相关API讲解:从语法结构讲解HTML5+相关接口,实现手机系统原生功能,例如扫码、拍照、地理位置获取、窗口处理等相关功能。
2、案例介绍:将仿支付宝案例穿插到课程讲解中,结合相应知识一步一步实现支付宝相关界面。
页面效果如图所示:

极光推送集成hbuilder项目
1、官方demo
https://github.com/jpush/jpush-hbuilder-demo/tree/masterhttps://github.com/jpush/jpush-hbuilder-demo/tree/master
2、官方API
https://github.com/jpush/jpush-hbuilder-demo/blob/master/API.md
3、官网说明
https://docs.jiguang.cn/jpush/client/client_plugins/
注意:
1、JPush_Support/PushConfig.plist 中配置的 APP_KEY ,是在极光官网申请的APP_KEY
2、极光官网需要从appdev申请推送证书(和普通打包证书不一样https://docs.jiguang.cn/jpush/client/iOS/ios_cer_guide/)
3、官方API中的方法与jpush.js中实现的方法有出入,如:
addLocalNotificationForIOS方法不存在
jpush.js中实现的方法是addLocalNotificationIniOS
且jpush.js中call_native方法不存在,应改为callNative
1、官方demo
https://github.com/jpush/jpush-hbuilder-demo/tree/masterhttps://github.com/jpush/jpush-hbuilder-demo/tree/master
2、官方API
https://github.com/jpush/jpush-hbuilder-demo/blob/master/API.md
3、官网说明
https://docs.jiguang.cn/jpush/client/client_plugins/
注意:
1、JPush_Support/PushConfig.plist 中配置的 APP_KEY ,是在极光官网申请的APP_KEY
2、极光官网需要从appdev申请推送证书(和普通打包证书不一样https://docs.jiguang.cn/jpush/client/iOS/ios_cer_guide/)
3、官方API中的方法与jpush.js中实现的方法有出入,如:
addLocalNotificationForIOS方法不存在
jpush.js中实现的方法是addLocalNotificationIniOS
且jpush.js中call_native方法不存在,应改为callNative

【分享】浅谈 5+App 中的网络请求跨域
从 5+App 诞生开始,ask 社区中类似下面这些问题,总会不定时出现一下:
- mui 的 ajax 请求跨域怎么解决?
- 为什么在浏览器上测试正常,在 5+App 中请求不到数据?
注:此文中的问题、测试、解决方案,均为本地环境。实际的生产环境,不在讨论范围内。所谓本地环境,就是自己开发用的电脑设备。
问题分析
出现上述问题的原因,大概有以下几种:
- 页面资源和服务,部署在了不同的机器上。
- 请求的地址主机名用的是 localhost 或者 127.0.0.1。
- 电脑设备的网络和手机设备的网络不在同一个网段,无法互通。
第一种,这个是“标准”的跨域,网上的解决方案很多。可以服务端配置允许跨域请求,也可以用诸如 jsonp 等前端解决方案。
第二种,这个是本文要探讨的重点,继续往后看。
测试
下面做一个测试,测试在不同设备下使用不同的地址访问服务的结果。
启动服务
为了方便期间直接用 Node.js 作为服务,本机的 IP 为 192.168.11.11,服务的端口为 3000。
app.js 代码如下:
var http = require('http');
var server = http.createServer(function(req, res) {
console.log('有人访问了');
res.writeHead(200, {
'Content-Type': 'text/plain;charset=utf-8'
});
if (req.url === '/favicon.ico') {
console.log('ignore');
} else if (req.url === '/request') {
var ret = {
code: 200,
msg: '请求成功',
data: {
name: 'request'
}
};
res.end(JSON.stringify(ret));
} else {
res.end('hello');
}
});
server.listen(3000);
console.log('server runing at port:' + 3000);
/*启动服务*/
$ node app.js
这个截图
PC 浏览器
打开电脑上的浏览器,输入以下几个地址,访问的结果都相同。
http://localhost:3000/request
http://127.0.0.1:3000/request
http://192.168.11.11:3000/request

手机浏览器
在使用手机浏览器访问之前,需要确保手机连接的网络与电脑设备的网络在同一个网段,否则无法访问。
打开手机浏览器,同样输入上面的几个地址,会发现只有 http://192.168.11.11:3000/request 返回了数据结果。通过命令行窗口的日志,也可以看到服务是否被正确访问到。
移动 App
其实这一步可以不用做太多测试了,结果和用手机浏览器访问是一样的。
对于移动 App 而言,应用是运行在手机系统中的,应用资源并不是部署在远程服务器上。当你在应用中用 127.0.0.1 作为主机名发起网络请求时,其实是在手机系统中查找是否有这个资源路径可访问。那么“为什么在浏览器上测试正常,在 5+App 中请求不到数据?”这个问题的原因,就在于此。
再说两句
前面说了这么多,再回到 5+App 上。虽然 5+App 是采用 Web 相关的技术开发移动 App,但是也不是所有 Web 的经验都可以照搬套用。遇到问题,还是要学会多搜索,多实验测试。
扩展阅读
下面这些,可以参考一下。实际开发中,视自己的开发需求选定方案。
从 5+App 诞生开始,ask 社区中类似下面这些问题,总会不定时出现一下:
- mui 的 ajax 请求跨域怎么解决?
- 为什么在浏览器上测试正常,在 5+App 中请求不到数据?
注:此文中的问题、测试、解决方案,均为本地环境。实际的生产环境,不在讨论范围内。所谓本地环境,就是自己开发用的电脑设备。
问题分析
出现上述问题的原因,大概有以下几种:
- 页面资源和服务,部署在了不同的机器上。
- 请求的地址主机名用的是 localhost 或者 127.0.0.1。
- 电脑设备的网络和手机设备的网络不在同一个网段,无法互通。
第一种,这个是“标准”的跨域,网上的解决方案很多。可以服务端配置允许跨域请求,也可以用诸如 jsonp 等前端解决方案。
第二种,这个是本文要探讨的重点,继续往后看。
测试
下面做一个测试,测试在不同设备下使用不同的地址访问服务的结果。
启动服务
为了方便期间直接用 Node.js 作为服务,本机的 IP 为 192.168.11.11,服务的端口为 3000。
app.js 代码如下:
var http = require('http');
var server = http.createServer(function(req, res) {
console.log('有人访问了');
res.writeHead(200, {
'Content-Type': 'text/plain;charset=utf-8'
});
if (req.url === '/favicon.ico') {
console.log('ignore');
} else if (req.url === '/request') {
var ret = {
code: 200,
msg: '请求成功',
data: {
name: 'request'
}
};
res.end(JSON.stringify(ret));
} else {
res.end('hello');
}
});
server.listen(3000);
console.log('server runing at port:' + 3000);
/*启动服务*/
$ node app.js
这个截图
PC 浏览器
打开电脑上的浏览器,输入以下几个地址,访问的结果都相同。
http://localhost:3000/request
http://127.0.0.1:3000/request
http://192.168.11.11:3000/request
手机浏览器
在使用手机浏览器访问之前,需要确保手机连接的网络与电脑设备的网络在同一个网段,否则无法访问。
打开手机浏览器,同样输入上面的几个地址,会发现只有 http://192.168.11.11:3000/request 返回了数据结果。通过命令行窗口的日志,也可以看到服务是否被正确访问到。
移动 App
其实这一步可以不用做太多测试了,结果和用手机浏览器访问是一样的。
对于移动 App 而言,应用是运行在手机系统中的,应用资源并不是部署在远程服务器上。当你在应用中用 127.0.0.1 作为主机名发起网络请求时,其实是在手机系统中查找是否有这个资源路径可访问。那么“为什么在浏览器上测试正常,在 5+App 中请求不到数据?”这个问题的原因,就在于此。
再说两句
前面说了这么多,再回到 5+App 上。虽然 5+App 是采用 Web 相关的技术开发移动 App,但是也不是所有 Web 的经验都可以照搬套用。遇到问题,还是要学会多搜索,多实验测试。
扩展阅读
下面这些,可以参考一下。实际开发中,视自己的开发需求选定方案。
收起阅读 »
low price Simple Large Roomy White Promotional Bag Tote Bag
SamTeam is a professional designer, manufacturer and exporter of bags in China since 2003.
Our factory located in Dongyang city, which is one of the main export base of bags in China. The area advantage, such as salt workers, integrated industrial systems and so on, assure us being in strong position to supply kinds of bags.
Now we hold 3 fixed assembly lines and more than 80 employees. At same time, the company builds another 4 fixed assembly lines in West China and has more than 120 employees. We can turn out up to 200,000pcs bags per month and deliver up to 10,000pcs in 10 days.
Unlike some other manufacturer of bags, we have own design and sales team, and supply one-stop service for customer. Nivea and coca-cola find our consolidated services to be more beneficial. We eliminated productions errors due to poor communication and any middleman costs, as well as speed delivery up.
The purpose of our company is that " Create values fro customers". Be in strict in managing every operation and expecting to develop us with you together. Call us!
One Sewing Line
Working Room Since 2010low price Simple Large Roomy White Promotional Bag Tote Bag
website:http://www.bag-supplier.com/.
SamTeam is a professional designer, manufacturer and exporter of bags in China since 2003.
Our factory located in Dongyang city, which is one of the main export base of bags in China. The area advantage, such as salt workers, integrated industrial systems and so on, assure us being in strong position to supply kinds of bags.
Now we hold 3 fixed assembly lines and more than 80 employees. At same time, the company builds another 4 fixed assembly lines in West China and has more than 120 employees. We can turn out up to 200,000pcs bags per month and deliver up to 10,000pcs in 10 days.
Unlike some other manufacturer of bags, we have own design and sales team, and supply one-stop service for customer. Nivea and coca-cola find our consolidated services to be more beneficial. We eliminated productions errors due to poor communication and any middleman costs, as well as speed delivery up.
The purpose of our company is that " Create values fro customers". Be in strict in managing every operation and expecting to develop us with you together. Call us!
One Sewing Line
Working Room Since 2010low price Simple Large Roomy White Promotional Bag Tote Bag
website:http://www.bag-supplier.com/.

郑州app开发软件的商业化优势体现在哪呢
app软件从开发出来的那一刻起,就已经决定了它的用途注定是商业化的,可以说现在app已经成为了企业移动端发展的重要工具。随着移动互联网产业信息的发展和传播,现在app软件越来受到各行业的关注,而有些投资者可能有疑问了:开发的app为什么会用于商用?商用手机app开发的优势有体现在哪里呢?app开发的商业模式优势有哪些呢?接下来郑州app开发燚轩科技小编即将展开分析。
app软件开发商业模式的优势
在这个红利期,app背后的商业潜力很大,如果找对市场是可以获得很大收益的,而且商业用的app只有在ios跟android系统版本更新时,才需要对app进行更新,其它时间需要做的工作很少。
商用app开发概念
郑州app开发公司燚轩科技认为,商用app开发指的是通过开发的方式开发一款商用app,企业可以根据自身的发展需求,结合当前商用app软件开发的行情,和商用app开发公司谈妥自己的开发需求,制作属于自己的商用手机app开发。商用app应用开发最大的特点,就是制作出来的商用app软件更有特色,缺点是商用app应用开发需要花费的时间更多,成本较大。
另外还有一个比较大的优势是现在app存在于移动设备中,现在的用户大部分都会把时间花在移动设备上,这样就会有很多营销优势。举例:很多app会借助各大流量多的平台推广自己的app寻找目标用户,受众用户点击广告后就会立即下载并使用app,这也是商用的app开发的一种模式。
以上就是为大家讲解的关于app软件商用化的分析,如果想要理解其他关于郑州app开发公司实力或技术如何的话,可以咨询燚轩科技了解。本文由郑州app开发http://www.appsaa.com整理发布,如需转载请注明出处。
app软件从开发出来的那一刻起,就已经决定了它的用途注定是商业化的,可以说现在app已经成为了企业移动端发展的重要工具。随着移动互联网产业信息的发展和传播,现在app软件越来受到各行业的关注,而有些投资者可能有疑问了:开发的app为什么会用于商用?商用手机app开发的优势有体现在哪里呢?app开发的商业模式优势有哪些呢?接下来郑州app开发燚轩科技小编即将展开分析。
app软件开发商业模式的优势
在这个红利期,app背后的商业潜力很大,如果找对市场是可以获得很大收益的,而且商业用的app只有在ios跟android系统版本更新时,才需要对app进行更新,其它时间需要做的工作很少。
商用app开发概念
郑州app开发公司燚轩科技认为,商用app开发指的是通过开发的方式开发一款商用app,企业可以根据自身的发展需求,结合当前商用app软件开发的行情,和商用app开发公司谈妥自己的开发需求,制作属于自己的商用手机app开发。商用app应用开发最大的特点,就是制作出来的商用app软件更有特色,缺点是商用app应用开发需要花费的时间更多,成本较大。
另外还有一个比较大的优势是现在app存在于移动设备中,现在的用户大部分都会把时间花在移动设备上,这样就会有很多营销优势。举例:很多app会借助各大流量多的平台推广自己的app寻找目标用户,受众用户点击广告后就会立即下载并使用app,这也是商用的app开发的一种模式。
以上就是为大家讲解的关于app软件商用化的分析,如果想要理解其他关于郑州app开发公司实力或技术如何的话,可以咨询燚轩科技了解。本文由郑州app开发http://www.appsaa.com整理发布,如需转载请注明出处。
收起阅读 »
为什么不同的开发模式郑州app开发给出的价格不一
目前的郑州app开发制作模式主要分三种:外包、借助平台自助式制作、组建团队自我开发。三种模式各有优劣点。不同的app开发模式、不同的功能需求价格自然不一样,比如品牌服饰跟街边服饰的价格肯定不在一个档次。不过我们可以根据不同开发模式来计算不同的价格。
第一种:传统的外包模式
费用决于下面几个因素:1、app支持平台:2、开发人员工资 3、产品功能的复杂程度 4、外包团队经验和素质 5、同类app产品开发案例 6、沟通成本。总费用:从10万到50万不等,高级的可能需要上百万。这种的模式的好处是一个技术团队专门为你服务,可以对产品进行不断深度挖掘,因为沟通问题,当然周期比较长,花费的资金比较多。起步十万,动辄上百万,对于大中型公司常常采用这种模式。
第二种:借助工具性平台自己制作
无论是外包还是自己组建团队,资金、技术,对于小白来说,是这两道不可逾越的门槛。在过去,即使你发现了一个不错的机会,但是只能眼睁睁看着别人走向了人生巅峰。但是,随着工具性平台的出现,移动互联的大门才正式向中小企业、创客敞开。
第三种:自己组建团队
这种模式往往本身就是技术出生,对程序把握较深,可以招聘一些程序员,分配任务进行,想对比app外包模式,因为是自己主导,不需要进行过多的沟通,所以周期较短,花费时间相对较少。但是,程序的功能受限于自身的专业水平。因为要租赁办公室、招聘人员等,花费的费用并不比第一种少,而且人员的管理也是问题,谁能保证迅速招到合适的人选?整体的费用20万起步。
所以综合来说,还是与郑州app开发公司合作是合理的,而且后期的维修服务等也不需要企业去操作,重要一点的是,选择源码开发的话,最后的所有都归企业所有,数据的私密性是能够保持完整的。如果想要了解其他app开发技术的话,可以咨询燚轩科技。本文由郑州app开发http://www.appsaa.com整理发布,如需转载,请注明出处!
目前的郑州app开发制作模式主要分三种:外包、借助平台自助式制作、组建团队自我开发。三种模式各有优劣点。不同的app开发模式、不同的功能需求价格自然不一样,比如品牌服饰跟街边服饰的价格肯定不在一个档次。不过我们可以根据不同开发模式来计算不同的价格。
第一种:传统的外包模式
费用决于下面几个因素:1、app支持平台:2、开发人员工资 3、产品功能的复杂程度 4、外包团队经验和素质 5、同类app产品开发案例 6、沟通成本。总费用:从10万到50万不等,高级的可能需要上百万。这种的模式的好处是一个技术团队专门为你服务,可以对产品进行不断深度挖掘,因为沟通问题,当然周期比较长,花费的资金比较多。起步十万,动辄上百万,对于大中型公司常常采用这种模式。
第二种:借助工具性平台自己制作
无论是外包还是自己组建团队,资金、技术,对于小白来说,是这两道不可逾越的门槛。在过去,即使你发现了一个不错的机会,但是只能眼睁睁看着别人走向了人生巅峰。但是,随着工具性平台的出现,移动互联的大门才正式向中小企业、创客敞开。
第三种:自己组建团队
这种模式往往本身就是技术出生,对程序把握较深,可以招聘一些程序员,分配任务进行,想对比app外包模式,因为是自己主导,不需要进行过多的沟通,所以周期较短,花费时间相对较少。但是,程序的功能受限于自身的专业水平。因为要租赁办公室、招聘人员等,花费的费用并不比第一种少,而且人员的管理也是问题,谁能保证迅速招到合适的人选?整体的费用20万起步。
所以综合来说,还是与郑州app开发公司合作是合理的,而且后期的维修服务等也不需要企业去操作,重要一点的是,选择源码开发的话,最后的所有都归企业所有,数据的私密性是能够保持完整的。如果想要了解其他app开发技术的话,可以咨询燚轩科技。本文由郑州app开发http://www.appsaa.com整理发布,如需转载,请注明出处!
收起阅读 »
DCloud开启新春招聘,邀请优秀的你共同打开未来之门
DCloud 是W3C会员、中国HTML5产业联盟发起单位,致力于推进HTML5发展,构建HTML5生态。
DCloud在HTML5、动态App领域拥有多项世界领先的技术,拥有200万开发者,上亿的终端引擎装机量,奠定了行业里绝对领先的位置。
微信小程序、快应用、流应用等"动态App"如火如荼的开展起来,DCloud经过多年布局及推广,必将伴随“动态App”乘势而起。
优秀的你,加入DCloud,携手一起打开未来之门!
公司坐标:北京市海淀区大钟寺附近
赶快把投递简历到hr2013@dcloud.io
Android工程师
专职Android开发经验,熟悉JS者优先。
3年以上经验 年薪:30w左右
应届毕业生 年薪:10-15w
商业运营专员
要求2年以上商业化变现运营经验,熟悉各种数据增长和变现增长模型。
薪资面议
更多求贤信息点这里
DCloud 是W3C会员、中国HTML5产业联盟发起单位,致力于推进HTML5发展,构建HTML5生态。
DCloud在HTML5、动态App领域拥有多项世界领先的技术,拥有200万开发者,上亿的终端引擎装机量,奠定了行业里绝对领先的位置。
微信小程序、快应用、流应用等"动态App"如火如荼的开展起来,DCloud经过多年布局及推广,必将伴随“动态App”乘势而起。
优秀的你,加入DCloud,携手一起打开未来之门!
公司坐标:北京市海淀区大钟寺附近
赶快把投递简历到hr2013@dcloud.io
Android工程师
专职Android开发经验,熟悉JS者优先。
3年以上经验 年薪:30w左右
应届毕业生 年薪:10-15w
商业运营专员
要求2年以上商业化变现运营经验,熟悉各种数据增长和变现增长模型。
薪资面议
更多求贤信息点这里
收起阅读 »