uniapp内嵌的h5能自己获取有网或无网状态吗?

从问题定位开始,到给框架(uni-app)提 issue、出解决方案(PR),再到最后的思考,详细记录了整个过程。

当你在业务中不幸踩了开源框架的某些坑,这是你的不幸,但这同时也是你的幸运,因为这是你给自己简历中增加亮点的绝佳机会。

而给开源社区贡献 PR 是你证明自己技术侧拥有 P7 实力的绝佳方式,P7 的评判标准无非是业务和技术,业务上有收益,技术上有深度和广度(别人有的你能做的更好,别人没有的你能有)。

这次整个过程历时 3-4 天,在此之前我也没读过 uni-app 和 ucharts 的源码,所以这里把整个过程分享出来也是给大家一个解决问题的思路。

  • 前言 用过SharePoint Online 版本的朋友们,应该很熟悉SharePoint为我们带来的Modern UI,而这个页面的订制,也跟原来的表单定制方式不同了,而且更加简单了. 而且,试了一 ...

  • 之前,开发团队接手一个项目并开始开发时,除了项目模块的实际开发之外,他们不得不为这个项目构建一个自动化测试框架.一个测试框架应该具有最佳的测试用例.假设(assumptions).脚本和技术来运行每一 ...

uni-app支持通过 可视化界面、 两种方式快速创建项目。

  • 在HBuilderX工具栏,点击发行,选择网站-H5手机版,如下图,点击即可生成 H5 的相关资源文件,保存于 unpackage 目录。
    • history 模式发行需要后台配置支持,详见:

    1. 申请微信小程序AppID,参考:。
    2. 在微信小程序开发者工具中,导入生成的微信小程序项目,测试项目代码运行正常后,点击“上传”按钮,之后按照 “提交审核” => “发布” 小程序标准流程,逐步操作即可,详细查看:。
    1. 入驻小程序并申请百度小程序AppID,参考:。
    2. 在百度小程序开发者工具中,导入生成的百度小程序项目,测试项目代码运行正常后,点击“上传”按钮上传代码,之后在百度小程序的 选择创建的应用点击前往发布,选择对应的版本然后提交审核。
    1. 入驻支付宝小程序,参考:。
    2. 在支付宝小程序开发者工具中,导入生成的支付宝小程序项目,测试项目代码运行正常后,点击“上传”按钮上传代码,在 ,选择刚提交的版本点击提交审核,详见:。

    发布为字节跳动小程序:

    1. 入驻字节跳动小程序,参考:。
    2. 在字节跳动小程序开发者工具中,导入生成的字节跳动小程序项目,测试项目代码运行正常后,点击“上传”按钮上传代码,在 ,选择刚提交的版本点击提交审核,详见:。
    1. 入驻360小程序,参考:。
    2. 在360浏览器中,导入生成的360小程序项目
    • 目前仅windows平台支持。360浏览器自身不支持mac平台。
    1. 入驻快应用(webview),参考:。
    2. 在快应用联盟工具中,导入生成的快应用联盟项目,测试项目代码运行正常后,点击”构建“打包正式版,在上传
    1. 入驻华为快应用,参考:。
    2. 在华为开发者工具中,导入生成的华为快应用项目,测试项目代码运行正常后,点击”构建“打包正式版,在上传

    发布为QQ小程序: 内容同上,不再重复。

    发布的快捷键是Ctrl+u。同样可拉下快速发布菜单并按数字键选择。

    使用正式版(对应HBuilderX最新正式版)

    此时,会提示选择项目模板,初次体验建议选择 hello uni-app 项目模板,如下所示:

    更多支持的下载方式,请参考这个插件的说明:

    1. 批量修改 package.json 中 uni 相关依赖为指定的版本号(去掉版本号前面 ^)。

    2. 对于有变化的依赖进行增删,提示不存指定版本的依赖可以保留原始版本或者删除,运行时提示缺少的依赖自行安装。

    可以自定义更多条件编译平台,比如钉钉小程序,参考。

    快应用有两种开发方式,uni-app均支持:

    • 类小程序webview渲染方式:

    华为快应用文档-小程序转快应用

    • dev 模式编译出的各平台代码存放于根目录下的 /dist/dev/目录,打开各平台开发工具选择对应平台目录即可进行预览(h5 平台不会在此目录,存在于缓存中);
    • build 模式编译出的各平台代码存放于根目录下的 /dist/build/ 目录,发布时选择此目录进行发布;
      1. build 模式会将代码进行压缩,体积更小更适合发布为正式版应用;

    使用cli创建项目和使用HBuilderX可视化界面创建项目有什么区别

    • cli 创建的项目,编译器安装在项目下。并且不会跟随HBuilderX升级。如需升级编译器,执行 npm update,或者手动修改 package.json 中的 uni 相关依赖版本后执行 npm install。更新后可能会有新增的依赖并不会自动安装,手动安装缺少的依赖即可。
    • HBuilderX可视化界面创建的项目,编译器在HBuilderX的安装目录下的plugin目录,随着HBuilderX的升级会自动升级编译器。
    • 已经使用cli创建的项目,如果想继续在HBuilderX里使用,可以把工程拖到HBuilderX中。注意如果是把整个项目拖入HBuilderX,则编译时走的是项目下的编译器。如果是把src目录拖入到HBuilderX中,则走的是HBuilderX安装目录下plugin目录下的编译器。
    • cli版如果想安装less、scss、ts等编译器,需自己手动npm安装。在HBuilderX的插件管理界面安装无效,那个只作用于HBuilderX创建的项目。

    • cli创建的项目,内置了d.ts,同其他常规npm库一样,可在、等支持d.ts的开发工具里正常开发并有语法提示。
    • 发布App时,仍然需要使用HBuilderX。其他开发工具无法发布App,但可以发布H5、各种小程序。如需开发App,可以先在HBuilderX里运行起来,然后在其他编辑器里修改保存代码,代码修改后会自动同步到手机基座。
    • 如果使用cli创建项目,那下载HBuilderX时只需下载10M的标准版即可。因为编译器已经安装到项目下了。
    • cli 使用有疑问,欢迎扫码加入 uni-app 微信交流群讨论:

    注意:HBuilderX创建的项目,一样可以使用npm,参考:

首先我们先定义一下。uni的hbuild区分了以下类型。

    wapAPP:  hbuild称为wap2App就是帮你在线的wap网站打包成app。实际上与H5APP一毛一样的,但是wapapp是从服务器请求资源,相当于套一个浏览器的壳。虽然H5也是套壳但是  H5是本地加载,wap2app也可以本地加载的,H5也可以网络加载只是区分了一样。可以归为一类

    uniapp是什么呢?是原生吗?   首先uniapp分为nvue渲染与vue渲染,你不用框架去绕过也行。vue渲染也是套壳啦。只是这部分VUE需要适配uniapp而已。那么nvue就是原生对不对?错错错,nvue只是原生的渲染引擎实际上算不上原生的。

真正的原生是什么?就是你打开 android studio原生写控件(我写个webview算不算原生呢?  算,因为webview实现是你写的原生代码  但是webview呈现的内容依然不是原生)。ios一个道理哦

那小程序又是啥呢?其实IE怎么死的   大家都知道,不参与w3c标准。微软大厂最后都。。。    腾讯等等小程序在未来不可能在浏览器领域有所作为,只能在自家生态发展,腾讯生态太强了。  现在的标准是chrome的内核,大部分使用的是chromium内核 99%   所以如果谷歌或者等等未来之类的,都参与这个标准。  不管现在的pc浏览器还是手机端的浏览器都是这个内核,只是版本不一样而已。   所有小程序使用这个内核却又横叉一脚定制自己的标准,   想想现在好多小程序,腾讯、支付宝、等等等等。   开发人员又回到年时代啦。因为要写N套代码,  但是比如你只适配微信小程序倒是不所谓。    虽然uniapp就是一端开发  多端发布。  这和以前兼容IE有什么区别呢? 唯一的区别就是限制更多了

我要回帖

更多关于 安卓app嵌入h5 的文章

 

随机推荐