北京政务服务平台(Ionic/Vue3 移动端) 问题记录
目录
1. 北京政务 App 打包流程、调试流程
1.1 debug 包(调试包)
1.2 release 包(正式包)
1.3 包名包含 public 后,导致打包失败的解决方案
1.4 如何进行手机 usb 调试?
1.5 如何进行 Android Studio 快速打包安装?
2. 解决 北京政务 App 在真机上无法访问网络的问题
3. 替换 App 应用名 / 包名 / 唯一标识 scheme
4. ionic 可直接修改标签样式,elementplus 不可
5. 为什么在 vue3 项目中,要引入 ionic 组件
6. 如何使用 ionic 主题色 variables.css
7. async/await VS promise.all()【select and list】
8 ion-select 自带属性 和 自定义配置项 会同时生效
9. 区分Vue3 获取路由信息、路由跳转
10. iframe 涉及的谷歌安全策略,实现单点登录存在的问题
11. Ionic 安装 capacitor 插件的三行命令的含义
1. 北京政务 App 打包流程、调试流程
1.1 debug 包(调试包)
Vue3/Ionic 打包需要依靠 Android Studio + 命令行工具,环境配置类似于 Angular/Ionic
在项目根目录下,任意命令行工具中,执行如下操作:
- 添加平台: ionic capacitor add android 【结束后命令行换行】
- 构建 原生app 资源:ionic capacitor build android 【结束后命令行换行,且自动打开 Android Studio 执行下述操作(构建app)】
- 构建完 原生app 资源之后,自动通过 Android Studio 构建 app 【可以观察面板右下角,会显示构建进度,初次构建app会比较慢】
- 点击 Android Studio 导航栏中的 Build → Build Bundles/APKs → Build APKs 【通过下方导航条的 build 可以查看打包进度】


后续在 vscode 中编写app,需要将 vscode 中的 静态资源/插件 更新到 Android Studio 中,执行下面两条命令的任意一条
- ionic capacitor update android
- ionic capacitor sync(推荐)
我的电脑上执行第一条不太行,执行第二条可以成功同步
同步完成之后,再次执行 Build APKs,即可获得新的 .apk 文件

1.2 release 包(正式包)
如果没有安装 node_modules 依赖的话,是无法进行打包操作的,测试包也不行
正式包,又名 release 包,无法进行联机调试操作(手机调试),debug 包才能进行联机调试
调试时,可以通过 chrome://inspect 查看控制台,也可以通过 Android Studio 打断点
release 包 的打包步骤,和 debug 包 的打包步骤,基本一致,如下所示:
添加平台:ionic capacitor add android
打包静态资源(比 debug 多了 --prod):ionic capacitor build android --prod 执行完这个命令之后,css/js 会被压缩
点击 Android Studio 这里进行正式打包:

打正式包,需要添加公司的签名文件:

接下来,选择 release,代表打正式包:

1.3 包名包含 public 后,导致打包失败的解决方案
在 vscode 中,修改 capacitor.config.json 里的包名,再执行 ionic capacitor sync
发现代码无法同步到 Android Studio 上,后者包名一直包含 public,没被修改
解决方案:
- 删除 android 文件夹(相当于移除平台),此时要关闭 Android Studio,否则 android 文件夹处于被占用状态,无法进行删除;然
- 后重新添加平台,打包静态资源,开始打包
1.4 如何进行手机 usb 调试?
连接手机,将手机调到 开发者模式,下面以小米手机为例:
- 设置-我的设备-全部参数-MIUI版本 —— 不断点击 MIUI版本 即可进入开发者模式
- 设置-更多设置-开发者选项 —— 打开 开启开发者选项 / USB调试 两个开关
- 连接手机后,手机跳出提示框,选择 “文件传输”,而不是 “仅充电”
在 chrome 中输入:chrome://inspect 回车,进入如下页面,点击 inspect

加载不出来?不要着急,因为这个窗口必须挂 VPN 才可以打开
这样,我们对手机的操作,就会反映在浏览器中,同时还能看控制台

有时由于数据线连接出现问题,或者手机本身权限没打开,都可能导致无法连接
此时可以重启手机,或者检查数据线等等
1.5 如何进行 Android Studio 快速打包安装?
为什么要这样调试呢?
原来都是把 build 好的 apk 文件,通过 qq 发送到手机安装,非常麻烦
其实 Android Studio 可以直接将打包好的程序安装到手机上,步骤如下:
首先,确定需要打包的项目已经在 Android Studio 中打开
必须确保打开的是某项目执行 capacitor 添加平台命令之后的 android 文件夹,只有他才可以打包
直接将整个项目在 Android Studio 中打开,是无法进行调试及打包的

接着,需要保证手机已经开启 USB 调试模式,并链接至电脑
在Android Studio 界面又设备链接的标志,如下图所示:

在 Android Studio 中,打开如下窗口,点击 Run

会出现下面的窗口,点击 Run,就会自动执行编译(Build)操作,并自动将最新的应用安装到手机上

有的时候会出现提示,是否打断手机上当前正在运行的程序,选择 Tr... 就行
2. 解决 北京政务 App 在真机上无法访问网络的问题
在 res/xml 下,创建 network_security_config.xml 文件,并添加如下内容:

接着,在 AndroidManifest.xml 文件下的 application 标签中,增加以下属性:

3. 替换 App 应用名 / 包名 / 唯一标识 scheme
AndroidManifest.xml 是 app入口文件
从下图的位置可以点进配置 App 应用名 / 包名 / 唯一标识 scheme 的文件 【必须是在 Android Studio 中才能点进去】

点开之后长这样子:

唯一标识的作用:比如我从 a应用 跳转到 b应用,就需要 b应用的唯一标识
包名命名规则:域名反向+项目名
4. ionic 可直接修改标签样式,elementplus 不可
ionic 在