跳至正文
Wener Notes

Ionic

约 2 分钟阅读
bash
# 安装
yarn global add ionic
# 确保 ionic 在路径下
export PATH="$(yarn global bin):$PATH"

# 创建一个基于 web 的 tab 切换 app
# -s 使用 SCSS
ionic start app-demo tabs
cd app-demo
ionic serve

# 查看可用的启动模板
ionic start -l

# 创建一个 cordova 应用
# --skip-link 不链接 ionic cloud 账号
# --skip-deps 不自动下载依赖
ionic start --cordova --skip-link --skip-deps -n '我的应用' myapp tabs

# 可以考虑将 ionic 作为开发依赖, 以避免和全局的版本冲突
# 这样也可以直接使用 yarn 执行 ionic 来生成内容
# 例如 yarn run -- ionic g page MyHome
yarn add --dev ionic
依赖包

FAQ

ISSUES

添加自定义图标

ion-icon 可以使用自定义的图标名字, 只需要添加响应的 css 即可.

css
/* 添加自定义图标 */
.ion-ios-MYICON,
.ion-ios-MYICON-outline,
.ion-md-MYICON {
  content: url(../../images/MYICON.png); /* 可以用图标, svg 或者 webfont */
  width: 24px;
  height: 32px;
  padding: 6px 4px 2px;
  margin: 5px;
  opacity: 0.9;
}

No provider for NavController

JavaScript
get navCtrl(){
  return this.app.getRootNav()
}

添加页面

bash
# 生成一个页面
# v2.2.3
# 会生成一个 User 页面, 如果想要使用 UserPage 这样的名字, 需要手动进行重构
# 除了会生成一个页面, 也会生成一个模块 user.module, 应该在 app.module 中导入该模块
yarn run -- i g page activity-detail
依赖包

修改 app.module.ts, 在 import 那里添加生成页面的 Module, 例如 ActivityDetailModule

默认生成的页面名字没有 Page 后缀, 例如上面的生成结果为 ActivityDetail, 如果要添加 Page 后缀, 可以在 activity-detail.ts, 选中类名然后进行重命名重构.

设置标题

在进行 Web 端开发但不需要 NavBar 时, 网页的 Header 不会发生改变, 此时需要手动控制

text
class MyPage{
  constructor(private app: App) {
  }
  ionViewDidEnter() {
    // 当进入该页面时修改 title
    this.app.setTitle('我的页面');
  }
}

路由

Ionic 使用的内置状态来控制路由, 而不是使用的基于 URL 的路由, 在 Ionic 中,使用 URL 来控制路由的叫做 DeepLinker, 但是由于 Web 的优先级对于开发团队来说相对较低, 因此支持上面有所欠缺.

text
IonicModule.forRoot(MyApp, null,{/* DeepLinkConfig */});

每个页面都可以对应一个路径上的名字, 其元数据可以使用 @IonicPage 来配置, 也可以再 DeepLinkConfig 进行统一配置. 建议在 DeepLinkConfig 配置以便于统一管理.

路由的跳转可以在 html 中添加 NavPush 或者 NavPop 指令控制, 或者通过直接注入 NavController 来控制.

关联信息

反向链接、本文链接的其他页面和外部资料。

参考资料

GitHub10 条
其他外链5 条
最近更新commit 906e816编辑