ionic4 开发企业微信应用0
作为一个后台开发人员,几年前参与过Ionic1开发过一微信公众号的经历,所以这次开发企业微信应用,就使用了ionic,正好ionic4 rc版本发布,虽然不是正式版,作为本项目的项目经理,还是决定使用ionic4开发,因为项目组员也是我。简单记录一下本次开发的过程,很多命令不经常输入,就忘记了。
0.环境要求
nodejs(好像是10以上对于ionic4)
很多资料说最好装cnpm,我使用感觉好像cnpm问题比npm多一点,而且现在网络情况不像以前那么恶劣了
具有管理员权限的命令行(类linux使用sudo)运行
npm install ionic -g
1.创建项目
目前ionic4还没正式发布,创建ionic4项目,需要使用
ionic start myApp tabs --type=angular
tabs代表模板类型,这可以直接ionic start --type=angular 向导方式创建
2.开发工具
官方好像推荐的是vs code,好像说了很多好像,主要是现在总结的时候已经不太记得当时的过程了,当时搜了很多资料,都是扫过一眼
vs code是用Electron应用,btw,ionic4也支持编译成Electron应用运行。
一些常用插件,如:Ionic 4 Snippets、path intellinesne
其他工具,如:Sublime Text3,这个也不错,ionic1开发的时候用的这个,很快
3.简单开发
默认tabs模板创建的三个tab页叫tab1,tab2,tab3显然不适合开发,新建三个页面,放到pages文件加下,使用命令:
ionic g
可以选择新建类型,页面,服务,模块,组件等,我创建了三个页面,名字中支持直接输入路径,三个页面:home,todo,done
删除原来三个tab123页面,修改路由:tabs.router.module.ts,我从来没学过angular,所以也不懂具体含义,照着修改了一下,可以正常使用。
然后开发了一个列表页面,从后台获取数据,创建一个service,记得新建命令吗 ionic g,负责http从服务器获取数据,参考https://github.com/nuonuoge/ionic4_angular6_elm简单实现
页面照搬官方组件教程,这个就是用ionic的好处,基本组件都有了,实现搜索,下拉刷新,上拉加载更多,地址:https://beta.ionicframework.com/docs/components
<ion-toolbar>
<ion-searchbar placeholder="请输入流程名称" [(ngModel)]="qryStr"></ion-searchbar>
<ion-button slot="end" expand="full" size="default" (click)="doRefresh($event)">搜索</ion-button>
</ion-toolbar>
<ion-content>
<ion-refresher slot="fixed" (ionRefresh)="doRefresh($event)">
<ion-refresher-content></ion-refresher-content>
</ion-refresher>
<ion-item *ngFor="let wi of workitems" (click)="selectItem(wi.workItemID,wi.workItemName)">
<ion-card-content>
<p>{{wi.processChName}}</p>
</ion-card-content>
<ion-card-content>
<p>{{wi.workItemName}}</p>
</ion-card-content>
<ion-card-content>
<p>{{wi.bizObject.name}}</p>
</ion-card-content>
</ion-item>
<ion-item *ngIf="touchEnd">
<ion-card-content>
<p>---我是有底线的---</p>
</ion-card-content>
</ion-item>
<ion-infinite-scroll #myinfinite (ionInfinite)="loadData($event)">
<ion-infinite-scroll-content
loadingSpinner="bubbles"
loadingText="加载更多...">
</ion-infinite-scroll-content>
</ion-infinite-scroll>
</ion-content>
中间发现一个viewchild装饰器用type取值有问题的bug,git上报了,rc2已经解决了
4.运行调试
ionic serve
调试没啥说的,后面参数也没研究过,可以指定host之类的。
我使用chrome调试的,跨域问题,需要安装一个插件:Allow-Control-Allow-Origin
还有一个方式,ionic配置代理,没搞,我后面会跟后台服务部署在一起,所以不需要。还被人鄙视都流行前后分离了,我还传统jsp
5.发布部署
发布这个着实费了一些劲,网上资料很多,但是说的都很简单,可能着本身就是很简单,我却卡住了
直接使用ionic build --prod生成www文件夹,我理解应该是拷贝里面内容到nginx类似静态网站服务器即可
我是直接拷贝www文件夹到tomcat的webapps目录,后面就杯具了,出不来啊,记得前面扫大批ionic资料的时候看过一眼base url啥的,最后修改了index.html里面的<base href="/" />为<base href="/www/" />,页面里的图片路径有不对了,这个参考网上写成相对路径即可,即去掉前面的/
但是这样,调试ionic serve又不行了,每次发布都要改,这肯定不行啊,然后网上找资料,因为angular,webpack,啥的都不懂啊,根本没法自己搞,只能抄
见到有人说这样:
ionic cordova platform add browser
ionic cordova build browser
好像ionic4已经不需要了,而且这样编译出来的还是要修改base url。但是又意外收获,用这个编译的可以有启动界面,像app一样,不过网上这个资料好少,连官网都没找到
有说加--engine browser --base-href /www/这两个参数的,这两个应该是angular的
又说把<base href="/" />改为<base href="." />
最后找到了我觉得的靠谱的,在https://github.com/ionic-team/ionic-cli/issues/3600,使用下面命令。建议进去看看,精彩在评论里
ionic build --prod -- --base-href /www/
还有一个待解决的问题就是调试的时候可以/www/tabs/todo,路由到todo的tab页,发布后报错,这个说配置路由解决,还没研究,准备有时间学学angular的路由,在解决这个问题
ionic4 开发企业微信应用0的更多相关文章
- nodejs 开发企业微信第三方应用入门教程
最近公司要开发企业微信端的 Worktile,以前做的是企业微信内部应用,所以只适用于私有部署客户,而对于公有云客户就无法使用,所有就准备开发企业微信的第三方应用,本文主要介绍在调研阶段遇到的山珍海味 ...
- 微信5.0之Fragment使用
相信大家对于微信5.0的切换效果一定很有印象,对于一些童鞋一定认为这是通过TabHost实现的,不过这里我要纠正一下你们的错误观点了,这个效果的实现是通过Fragment+ViewPage实现的,看上 ...
- 微信OAuth2.0网页受权php
www.MyException.Cn 网友分享于:2014-01-19 浏览:2504次 微信OAuth2.0网页授权php示例 1.配置授权回调页面域名,如 www.aaa.com 2.模拟公众号的 ...
- 解决微信OAuth2.0网页授权回调域名只能设置一个的问题
https://github.com/HADB/GetWeixinCode GetWeixinCode 解决微信OAuth2.0网页授权回调域名只能设置一个的问题 使用方法 部署get-weixin- ...
- 微信5.0 Android版飞机大战破解无敌模式手记
微信5.0 Android版飞机大战破解无敌模式手记 转载: http://www.blogjava.net/zh-weir/archive/2013/08/14/402821.html 微信5.0 ...
- 开放源代码的微微信.NET 0.8 版公布了
微微信.NET 0.8 版公布了 A.源代码应用范围: 未认证的和经过认证的微信订阅号.微信服务号均可使用,本源代码的每个模块都提供全然的 ASP.NET C#源代码,绝对不含 ...
- 转载:解决微信OAuth2.0网页授权回调域名只能设置一个的问题
项目地址:https://github.com/HADB/GetWeixinCode 说明:微信项目很多,但是回调域名有限,经常使用,做个笔记. 解决微信OAuth2.0网页授权只能设置一个回调域名的 ...
- Android 高仿微信6.0主界面 带你玩转切换图标变色
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/41087219,本文出自:[张鸿洋的博客] 1.概述 学习Android少不了模仿 ...
- iOS逆向开发(5):微信强制升级的突破 | 多开 | 微信5.0
接下来的几篇文章,小程以微信为例,实战地演示一下:如何注入iOS的APP.其中使用到的知识,基本在前面的文章中都有介绍到. 小白:小程,我想用回旧版本的微信! 小程:为什么要用旧版本微信呢? 小白:你 ...
随机推荐
- shell利用mysql表项的icmp检测
作者:邓聪聪 利用mysql的表项记录IP地址和对应状态 +----+-----------------+--------+--------+ | id | ip_host | desc | stat ...
- ABP代码生成器与升级到VS2017VSIX
首先,我不是要分享一个代码生成器,而是怎么升级到VS2017,简单介绍下 如何将2015的VSIX项目升级到2017 阳光铭睿 写了一篇<分享一个与ABP配套使用的代码生成器源码>,并在群 ...
- 小程序:动态监测input和取值
1.输入框失去焦点取值 wxml: <input bindblur="tab" type='text'></input> js: tab:function( ...
- FTP设置
ftp设置 1.登录服务器 2.程序->关闭或启用windows服务 3.创建用户 4.在iis中增加ftp站点,设置ftpsite,ip和端口号,物理路径 5.设置ftp身份验证 6.访问ft ...
- HashMap 和 Hashtable 的 6 个区别
HashMap 是非常重要且常用的一种集合,还有一个和它类似的集合即Hashtable,有必要知道它们之间的区别. 1.线程安全: Hashtable 是线程安全的,HashMap 则不是线程安全的. ...
- buaaoo_first_improvement
优化,还是不优化,这是个问题 本讨论仅基于程序基本上正确的情况下. (一)第一次作业 众所周知,本次作业没有优化到100分的都进入了B组或者C组,所以事实上本次作业的优化是十分简单的,在这里提几句. ...
- ASP.NET Core快速入门学习笔记(第3章:依赖注入)
课程链接:http://video.jessetalk.cn/course/explore 良心课程,大家一起来学习哈! 任务16:介绍 1.依赖注入概念详解 从UML和软件建模来理解 从单元测试来理 ...
- winxp改AHCI不再蓝屏,不用改注册表,所有PC机通用
要用win8的pe 在通常的情况下,硬盘在BIOS中默认为原生IDE模式以获得最好的兼容性.对配件要求较高的W7,W8系统中,而通过开启硬盘AHCI模式,可以在一定程度上提升硬盘的性能表现.如果在ID ...
- Cesium 中由 Logarithmic Depth Buffer 引起的模型显示不完整的问题
当 Cesium 单个模型过长时,会遇到某些视角模型显示不完整的问题,如下图所示: 经过在官方论坛上询问,该问题由 viewer.scene.logarithmicDepthBuffer 开启造成,关 ...
- Kafka消费者组再均衡问题
在Kafka中,当有新消费者加入或者订阅的topic数发生变化时,会触发Rebalance(再均衡:在同一个消费者组当中,分区的所有权从一个消费者转移到另外一个消费者)机制,Rebalance顾名思义 ...