Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED

这篇具有很好参考价值的文章主要介绍了Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED

capacitor 官网: https://capacitorjs.com/docs/

项目上需要做一个 app,而这个 app 是用 uniapp 做的,里面用到了一个依赖 dom 的库,所以无法使用 Uniapp 直接生成对应的 android 应用,试过了,无法使用,体验很差。

后发现 capacitor 打包 h5 到 Android 应用
摸索了一天半终于把这个路径打通了。分享下过程。

这篇文章将详细介绍如何安装 capacitor,构建成功 Android 应用后如何通过 Chrome 进行 Android 内的网页页面的调试。

文中我会以一个前端的认知层面来讲述,因为我也不懂 Android,这样作为前端的你会更容易理解。

一、使用 capacitor 需要的源材料。

  • 一个构建好的项目 dist 最终 html 文件包 比如就是一个 dist 文件夹
  • 一个 capacitor 项目
  • 一个能正常运行的 AndroidStudio
  • 一个访问外网的途径(安装过程中会需要设置 proxy 以正常安装 gradle

二、项目安装过程

官方的文档说明: https://capacitorjs.com/docs/getting-started

简述一下这个过程:

1. 新建一个 capacitor 应用

npm init @capacitor/app

它会让你填写一些项目信息,根据提示填写即可
Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app

2. 安装项目依赖

上面的操作已经创建了一个空的 capacitor 应用,这个应用目前处于没有安装 npm 的状态,所以需要安装一下。
你用 yarn 或者 npm 都可以

我喜欢用 yarn ,直接执行

yarn

或者

npm

Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app

此时查看项目文件
Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app

3. 初始化 capacitor 项目

npx cap init

Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app

4. 用的常用的编辑器打开这个项目

我习惯用 webstorm

能看到刚才配置的项目信息:
Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app

5. 设置 webDir 属性

其中的 webDir 属性表示在构建应用的时候使用哪个目录下的 html 文件作为项目内容,这里就是 ./dist 文件夹,我们将之前构建好的 web 项目最终 dist 文件夹放到 capacitor 项目的主目录中即可。
当然,这个目录名字只要对应上就可以,不一定非得叫 dist

添加完成之后项目目录就是这样的
Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app

6. 安装 Android iOS 依赖包

npm i @capacitor/android @capacitor/ios

Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app

7. 构建 Android iOS 应用内容

这里我目前只用到了 Android 的,所以先只看 Android 的,以后用到 iOS 的再补充

npx cap add android

Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app
执行完成之后,项目目录中多出一个 android 文件夹

Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app

三、运行 Android 应用

上面就算已经把整个项目都构建完成了,现在我们就需要将项目运行到 AndroidStudio 中了。

1. 添加 CAPACITOR_ANDROID_STUDIO_PATH 环境变量

在这之前你还需要做一件事,就是将系统中添加一个环境变量 CAPACITOR_ANDROID_STUDIO_PATH 变量值是你的 AndroidStudio.exe 软件的路径。因为接下来的操作会用到这个路径指向的 exe 来启动并运行 Android 应用。

Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app

2. 运行 Android 应用

执行下面指令,它会自动启动 AndroidStudio 并运行这个项目的 Android 应用,这个Android 应用使用的目录是 ./android 目录作为项目主目录

npx cap open android

Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app

AndroidStudio 会弹出提示,点 trust 即可
Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app

然后弹出让你输入 proxy 的窗口,输入你的 proxy 配置即可

Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app
然后 gradle 会运行,并对程序进行初始化的环境依赖处理

Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app
完成之后就是这样
Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app
此时你只需要点击右上角的运行就能看到你程序的运行情况了,这里你可以选择运行到你的实机,也可以运行到模拟器。

四、调试

程序正常打开之后,你可能需要调试内部的网页。这样操作:

  1. 关闭之前运行的程序
  2. 点击调试按钮
    Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app
  3. 当程序正常运行到手机上的时候,打开你的谷歌浏览器 chrome,在地址栏中输入以下内容。
chrome://inspect/

此时你就能看到你手机中显示的这个程序的对应页面的路径,然后点击 【inspect】 就能对手机中的页面进行调试了,这个跟在浏览器中调试是一模一样的。

Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app

五、网络请求问题

1. 网络访问

我在使用的时候发现无法进行网络访问。
我用 uniapp 打包的程序,用 axios 是无法访问网络的,但用 uniapp 自带的请求方法 uni.request 就可以。

Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app

https

能访问之后又遇到一个新问题,我请求的接口地址是 http 的,会提示你 跨域问题,从 https 请求 http 确实会出现跨域,解决办法就是统一协议。

你的本地 html 服务的时候是使用的 https,而你的接口是 http 的,就会发现这问题

那么现在要解决的就是将本地文件的服务方式改为 http

还记得我们之前看到的 capacitor 项目中的 capacitor.config.json 文件吗,里面有个参数是上图这个 androidScheme,将它改成 http 即可,改完之后,记得重新用指令打开它

npx cap open android

Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app

错误提示 net::ERR_CLEARTEXT_NOT_PERMITTED

上面跨域的问题解决之后,又出现这样的提示。
Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app

解决办法
在 Android 项目文件夹中的 AndroidManifest.xml 文件中,在 application 节点上添加下面的内容:

        android:usesCleartextTraffic="true"

Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app

这样就能正常运行了
Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app

六、更新项目 html 本地文件

上面已经能正常运行程序了。
但当你想更新项目内容时该怎么做呢?

定位到你的 Android 文件夹,比如上面这个例子 ./demo 文件夹是 capacitor 的主目录,那么这个安卓应用使用的 html 源文件的位置就是 ./demo/android\app\src\main\assets\public 这个文件夹
所以你只需要替换这文件夹中的内容,然后再执行 Android 应用即可实现更新

七、更换应用图标

打开 ./android/app/src/main/res/ 能看到 app 中需要的图片资源文件夹。
这里面有好多个对应不同尺寸的资源文件夹,我们只需要保留一个就好。

Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app

Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app

将 文件夹听图标替换成自己的就可以了。最好照着它的来,边缘透明区域什么的都照着来。

Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app

八、如何打包成 apk

AndroidStudio 中 Build - Generate Signed Bundle / APK
Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app

Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app
keystore 需要自己生成一个,生成教程在这

生成 .keystore 说明:https://ask.dcloud.net.cn/article/35777

Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app
Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app

此时点击 locate 即可打开生成的 APK 目录
Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED,uniapp,capacitor,http,android,uni-app文章来源地址https://www.toymoban.com/news/detail-715904.html

九、完成

到了这里,关于Capacitor 打包 h5 到 Android 应用,uniapp https http net::ERR_CLEARTEXT_NOT_PERMITTED的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp 打包H5,打包小程序,打包app分享到微信聊天、朋友圈

    1.uniapp打包H5操作手法:Hbuilder-发行-网站-PC-WEB端或手机端H5访问,需要填写个访问域名,即发布后访问的域名路径 2.uniapp打包H5配置注意事项:uniapp下manifest.json文件中H5配置相关配置,路由模式选择hash,勾选上https访问。 注:如果是本地访问没有https设置,则该项不要勾选,打

    2024年02月09日
    浏览(68)
  • uniapp打包成H5部署到服务器教程

    步骤如下: 1:点击菜单栏发行,点击选择网站-H5手机版, 2:在网站域名这一栏填写,网站域名,例如www.xxx.com或者你的服务器的IP地址47.103.XX.XX,(这个地址是你将项目打包之后存放放静态文件的地址)。 3、 4、 项目里面请求的公共路径 5、打包 6、上传到服务器 7、配置

    2024年02月04日
    浏览(39)
  • uniapp开发,打包成H5部署到服务器

    哈喽大家好~我是马小跳。一名进阶中的程序媛。 在这里记录下自己成长的每一次进步,希望遇到志同道合的猿友 一起努力,一起把技术up up up!!! 前端使用uniapp开发项目完成后,需要将页面打包,生成H5的静态文件,部署在服务器上。 这样通过服务器链接地址,直接可以

    2024年02月05日
    浏览(48)
  • uniapp的打包:h5、微信小程序以及APP方式

    本人用的是HBuilder编译器,学习uniapp时b站某位大大推荐的,我刚开始接触代码时候也用过,那时候并不好用这个编译器,但是现在试了一下挺好用的。 这是h5页面的打包配置,新版本的HBuilder用的是web配置(也就是h5配置的意思) 由于上图是我个人项目练习,没有用到appID,所

    2024年02月09日
    浏览(65)
  • uniapp h5 echarts 打包后图表点击失效/及其他失效

    pc端 window11 hbuilderx版本 3.8.12 echarts版本 5.4.3 在main.js 加上 window.wx = {} // 开发正常 打包后 图表点击等也会失效 window.wx = null 会报错 打包后自动检测环境,会优先走到 wx里去。进去就不出来了。拉都拉不出来那种。所以重写一下wx

    2024年02月08日
    浏览(41)
  • uniApp h5项目通过命令行打包,并生成指定路径、文件名称

    第一步:采用hbuilder新建一个项目 第二部:通过cli新建一个项目 创建命令: 创建成功之后先运行一下项目,如果启动失败 Error: Cannot find module ‘webpack/lib/RuleSet‘ 我们将hb的项目作为基础 回到主题,将hb项目作为基础, 第一步:新建src文件夹,将以下文件放入src文件夹中  第

    2024年02月07日
    浏览(41)
  • uniapp打包H5出现Please enable JavaScript to continue

    这个问题困扰了我2天的时间。几乎看完了所有的文档。网上各种配置,各种说法,这里做一个统一的归纳汇总。 这里说明一下,调试是调试,打包是打包,谁的问题,就看谁。 调试的问题请看 uniapp跨域的问题 的文章,在我的列表里面找。 下面说,当界面出现这个原因的解

    2024年02月09日
    浏览(41)
  • uniapp项目打包H5后 希望可以修改固定的配置(接口地址,系统名称等)

    一、在static静态目录下创建config.js,如图  config.js 二、在manifest.json 的h5下设置\\\"template\\\" : \\\"template.h5.html\\\"   三、在项目根目录下新建 template.h5.html 文件,在该文件引入配置文件config.js  template.h5.html 文件内容,引入配置文件config.js 四、重新运行uniapp项目,配置后一定要重启一下

    2024年02月01日
    浏览(45)
  • uniApp h5项目/小程序项目通过命令行打包 一个项目二端适配

    一、打包环境 1. 环境版本 软件 版本 nodejs v14.17.5 vue/cli 4.5.15 vue 2.x 2. 搭建环境 安装nodejs linux安装流程: https://nodejs.org/download/release/v14.17.5/ 卸载默认vue/cli 安装vue/cli 二、创建项目 2.1. HBuilder X创建项目 my-project-x 修改展示文字为 gblfy.com 2.2. cli创建项目 通过cli新建一个项目 选

    2024年02月13日
    浏览(39)
  • uniapp使用cli脚手架创建兼容小程序和h5的项目 自动化命令打包运行

    HbuliderX搭建项目结构: CLI搭建项目结构: CLI方式搭建uniapp项目: 大家可以看下两种方式搭建的项目文件夹目录有什么区别,上面的是HbuilderX模版搭建的小程序项目,下面的是cli搭建的项目,先把my-test项目中src下面的文件全部删除,然后我把小程序代码全部塞进了src文件夹下

    2024年02月16日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包