利用HBuilderX 开发了一个小demo,系统登录,页面跳转到主页,点击按钮实现扫一扫功能。记录下开发过程。

1:利用HBuilderX 新建一个5+App;

2:编写功能所需要的css js 等;

3:实现安装包升级功能;

4:打包apk或ipa;

代码开发:

源码附后

在线升级App

在生成升级包安装过程中碰见的一个问题:

安装wgt文件失败[-1205]:WGT安装包中manifest.json 文件的version 版本不匹配;

进入到发布升级包资源的路径下:查看mainifest.json中的版本号是否和需要升级的版本一致,不一致重新生成升级包。

打包APP

Android打包相对简单;

这里记录下ios端的打包:

首先需要注册ios开发者账户:https://developer.apple.com/

此时还没有enroll (加入ios开发者中心)https://developer.apple.com/enroll/

enroll是需要付费的,不付费相当于是免费的开发账号,苹果开发者账户类型参考如下:

此表出处:http://www.applicationloader.net/blog/zh/1073.html

如果只是体验学习下:

可以下载一个试用工具appUploader来得到打包ios所需要的 证书(*.p12)和描述文件(*.mobileprovision)

源代码如下:代码可参考DCCloud 示例项目

<!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>HGCLoud</title><script src="js/mui.min.js"></script><link href="css/mui.min.css" rel="stylesheet"/><style type="text/css">html{height: 100%;margin: 0;padding: 0;}body{            width: 100%;height: 100%;background-color: rgba(13, 42, 67, 1);/* background-image:url('images/bgc.png'); */background-size:cover;-webkit-background-size: cover;background-repeat: no-repeat;font-family: Helvetica, 'Hiragino Sans GB', 'Microsoft Yahei', '微软雅黑', Arial, sans-serif;font-size: 0;overflow: hidden;}.title-wrapper{position: fixed;top:20%;left:50%;width: 400px;height: 100%;margin-left: -200px;} .title{font-size: 25px;color:white;}.login-wrapper{position: absolute;bottom: 20%;width: 100%;}.login-wrapper .btn-large{width: 200px;height: 50px;background-color: red;font-size: 15px;}        </style>
</head>
<body><center class="title-wrapper"><h1 class="title">Hello 系统登录</h1><br><span class="version">V8.0</span></center><div class="login-wrapper"><center><button id="btnLogin" type="button" data-loading-text="登录中..." data-loading-icon="mui-spinner mui-spinner-custom" class="mui-btn mui-btn-danger  btn-large">登录</button></center></div>
</body>
</html>
<script type="text/javascript" charset="utf-8">mui.init();var wgtVer=null;  function plusReady(){  plus.runtime.getProperty(plus.runtime.appid,function(inf){  wgtVer=inf.version;  checkUpdate();}); mui(document.body).on('tap', '.mui-btn', function(e) {mui(this).button('loading');setTimeout(function() {mui(this).button('reset');mui.openWindow('home.html','home',{});}.bind(this), 700);});}  if(window.plus){  plusReady();}else{  document.addEventListener('plusready',plusReady,false);  }var wgtUrl="http://192.168.10.140:8002/update/H5C1960F0.wgt";function downWgt(){plus.nativeUI.showWaiting("下载更新,请稍后...");var dtask = plus.downloader.createDownload( wgtUrl, {filename:"_doc/update/"}, function(d,status){if ( status == 200 ) { console.log("下载wgt成功:"+d.filename);installWgt(d.filename); } else {// console.log("下载wgt失败!");plus.nativeUI.alert("下载更新包失败!");}plus.nativeUI.closeWaiting();});try {dtask.start(); // 开启下载的任务var prg = 0;dtask.addEventListener('statechanged', function(task,status) {        switch (task.state) {case 1://'正在下载';              break;case 2:// '已连接到服务器';            break;case 3:prg = parseInt((parseFloat(task.downloadedSize) /parseFloat(task.totalSize)) * 100);// document.getElementById("progress").innerText=prg;break;case 4:// that.showProgress = false;break;}});} catch (err) {// that.showProgress = false;plus.nativeUI.toast('网络异常,请稍候再试' + err);}//end of task}// 更新应用资源function installWgt(path){plus.nativeUI.showWaiting("安装wgt文件...");plus.runtime.install(path,{},function(){plus.nativeUI.closeWaiting();console.log("安装wgt文件成功!");plus.nativeUI.alert("应用资源更新完成!",function(){plus.runtime.restart();});},function(e){plus.nativeUI.closeWaiting();console.log("安装wgt文件失败["+e.code+"]:"+e.message);plus.nativeUI.alert("安装wgt文件失败["+e.code+"]:"+e.message);});}// 检测更新  var checkUrl="http://192.168.10.140:8002/api/dc/checkversion";  function checkUpdate(){  // plus.nativeUI.showWaiting("检测更新...");var xhr=new XMLHttpRequest();  xhr.onreadystatechange=function(){  switch(xhr.readyState){  case 4:  // plus.nativeUI.closeWaiting();  if(xhr.status==200){  console.log("检测更新成功:"+xhr.responseText);  var newVer = JSON.parse(xhr.responseText);  console.log(wgtVer);if(wgtVer &&newVer.Version && (wgtVer!=newVer.Version)){  var btnArray = ['否', '是'];mui.confirm('是否立刻升级?', '发现新版本', btnArray, function(e) {if (e.index == 1) {downWgt(); } else{}});}else{  // plus.nativeUI.alert("无新版本可更新!");  } }else{  console.log("检测更新失败!");  plus.nativeUI.alert("检测更新失败!");  }  break;  default:  break;  }  }  xhr.open('GET',checkUrl);  xhr.send();  }</script>

扫一扫页面功能:

<!doctype html>
<html>    <head><meta charset="utf-8"><title></title><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /><link href="css/mui.css" rel="stylesheet" /></head><style> .title{color:white;text-align: center;          }.main-wrapper{position: absolute;bottom: 30%;width: 100%;}.main-wrapper .btn-large{width: 200px;height: 50px;background-color: red;font-size: 15px;}</style><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></header><div class="main-wrapper"><center><button id="btnScan" type="button" class="mui-btn mui-btn-danger btn-large">扫一扫</button></center></div><script src="js/mui.js"></script><script src="js/common.js"></script><script type="text/javascript">mui.init();mui.plusReady(function(){             mui('.main-wrapper').on('tap', '#btnScan', function(e) {                  createWithoutTitle('barcode_scan.html', {titleNView:{type: 'float',backgroundColor: 'rgba(255,0,0,1)',titleText: '扫一扫',titleColor: '#FFFFFF',autoBackButton: true,                     }});                 });});function scaned(t, r, f){mui.toast("恭喜:扫码成功!");              plus.runtime.openURL(r);            }</script></body>
</html>

体验H5+plus开发移动端相关推荐

  1. H5移动开发AUI框架入门---博客园老牛大讲堂

    大家都知道H5可以开发移动端的页面,网上提供的移动端的开发都有很多.因为我学习了AUI框架,所以我这里介绍一下移动端AUI框架.--博客园老牛大讲堂 一.AUI框架是什么?---博客园老牛大讲堂 AU ...

  2. 移动端H5混合开发设置复盘与总结

    此篇接上一篇: 移动端H5混合开发,Touch触控,拖拽,长按, 滑屏 实现方案 https://www.cnblogs.com/buoge/p/9346699.html app 场布设置已经上线了, ...

  3. 移动端开发——APP端上H5容器化建设

    1. 背景 当前移动端和前端的结合愈加紧密,尤其是在偏重活动运营的电商App中,受制于App版本审核,具备研发成本低.可灵活发布等特点的H5页面受到青睐,使其在APP端上承接了越来越多的业务.然而H5 ...

  4. 移动端h5游戏开发中的动画和动效展示

    在移动端h5游戏开发中,经常会遇到动画和动效的展现需求,比较常用的实现方法有css3.svg.定时器等,针对不同的场景和需求使用不同的技术,可以提升设计和开发的效率,保证产品的效果和质量,也能让用户有 ...

  5. 混合开发与移动端--H5混合开发、H5页面的开发布局、开发注意事项、H5与原生(安卓)交互、webpack打包优化解决方案、H5调试工具、webview

    H5混合开发 混合开发.原生开发.H5开发的区别: 简述:主流APP:原生APP.H5(webapp).混合APP,相对应的定制研发即原生开发.H5开发.混合开发 原生APP开发优缺点: 可以访问手机 ...

  6. 关于H5开发移动端APP

    使用H5开发移动端app 优点: 很大的好处就是快速.简单.方便,一套代码几乎不用怎么修改就可以同时打包iOS.Android安装包. 基于前端各方面应用技术栈成熟,资料齐全. 有不少的平台和开发工具 ...

  7. 移动端H5网页开发常见问题汇总

    简介 这篇文章主要是总结下移动端开发常见问题,帮助大家一起避坑.如果已经看过这篇文章了的话也可以看看笔者写的 移动端H5网页开发必备知识 移动端开发必备知识-Hybrid App HTML方面 调用系 ...

  8. cocos creator休闲游戏甜品幻想H5+安卓+IOS三端源码开发脚本为javaScript

    cocos creator休闲游戏甜品幻想H5+安卓+IOS三端源码,开发脚本为javaScript方便扩展和阅读,支持cocos creator2.X版本,完整的源码可拿来运营学习研究二次开发. 1 ...

  9. h5 默认为移动端页面_20条移动前端H5页面开发规范,h5开发必看文档

    这是根据腾讯最新公布的<移动页面用户行为报告>来给大家分享的关于移动端H5页面开发一些20条规范和准则.里面大概包含了16种用户操作习惯和注意点. 下面25学堂跟大家先分享一张关于2016 ...

最新文章

  1. 深圳腾讯内部Jetpack宝典意外流出!极致经典,堪称Android架构组件的天花板
  2. 使用JavaMail发送邮件,465端口开启ssl加密传输
  3. IDEA 项目结构旁边出现 0%classes,0% lines covered
  4. 耗时又繁重的SQL诊断优化,以后就都交给数据库自治服务DAS吧!
  5. 如何有效地遍历Java Map中的每个条目?
  6. mysql8开启远程访问
  7. 屌丝就爱尝鲜头——java8再判断
  8. 我国计算机网络发展水平,计算机网络发展
  9. qt 旋转后的三维坐标_OpenGL + Qt: 3 - 旋转动画和键盘操纵
  10. 华为S2600T------v1版本
  11. python 表白程序代码_程序员如何实现表白代码
  12. Python爬虫 之 破解 cookie 代理 验证码 实战
  13. Error: for..in loops iterate over the entire prototype chain
  14. 代码练习——数组_实战
  15. 数字图像处理之图像修复
  16. 浏览器UA,浏览器标识检测
  17. Note For Linux By Jes(14)-启动流程、模块管理与 Loader
  18. C++Test基于CCS的单元测试
  19. 三国志战略版S1赛季开荒高级地所需战力分析建模——附深度学习建模思路
  20. linux ln 链接

热门文章

  1. Chrome插件(扩展)安装失败的解决方法
  2. 虚拟机无法连接外网以及无法ping通同一个wifi下的电脑
  3. 消费者支持国产似乎只是口号?越来越多消费者购买iPhone
  4. 计算机一级办公软件试题,办公软件应用 计算机一级考试试题.doc
  5. C++我的世界2D版
  6. vCard 文件联系人去重处理
  7. java游戏开始被流星_用 JAVA 开发游戏连连看(之一)动手前的准备
  8. 命运歌姬电脑版怎么玩 命运歌姬安卓模拟器教程
  9. 淘宝官方订单 API 接口,获取购买到的商品订单详情
  10. 微信小程序之前端与java后台进行数据交互