• 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的路由,在解决这个问题

  • 相关阅读:
    两个泛型实例之间的属性变化
    C#
    字符编码
    如何在阿里云 CentOS 8 / RHEL 8 上安装 vsftpd(ftp 服务器)
    使用 ASP.NET Core 创建 Web API使用 JavaScript 调用报错 webapi Unable to get items. TypeError: Failed to fetch
    让WPF程序启动时以管理员身份运行(转载)
    WPF任务栏同步进度
    C# ref and out
    C# 中 string.Empty、""、null的差别
    如何读写拥有命名空间xmlns 属性的Xml文件(C#实现)
  • 原文地址:https://www.cnblogs.com/sss/p/10308126.html
Copyright © 2020-2023  润新知