栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

将uni-app打包的H5放在 Android程序中在 webview 显示的两种方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将uni-app打包的H5放在 Android程序中在 webview 显示的两种方法

将uni-app打包的H5放在 Android程序中在 webview 显示的两种方法
  • 前言
  • Hash
  • History
  • 完事

前言

之前有个项目要同时做小程序和APP,本着节省时间的想法,研究了下uni-app,但是发现从中打包成APP不太靠谱,所以想着打包成H5,然后在APP里头加载。虽然最终还是分开用原生来实现了,不过这个技术选型还是得记录下来,免得以后遇到同类型项目,又忘了这茬。

Hash

在uni-app项目中,有个配置文件manifest.json,打开它,选择H5配置,修改路由模式为hash,并且将运行基础路径修改成相对路径。

然后选择发行-网站,进行打包,就能在项目根目录的unpackage/dist/build/h5得到打包后的H5文件,这个时候,我们直接双击index.html就能在浏览器中打开。

既然能正常在浏览器中打开,那直接也能在Android的webview中打开了。
举例:我们把h5的整个文件夹,放在Android工程的assets文件夹中,然后在webview中加载file:android_asset/h5/index.html即可。

History

如果基于不可抗力,必须选择History路由模式打包H5,就选择以下方法。

  1. 添加依赖

https://github.com/yanzhenjie/AndServer 参考官方说明

  1. 将打包出来的h5的整个文件夹,放在Android工程的assets文件夹中
  2. 添加配置代码:
@Config
class AppConfig: WebConfig {

    override fun onConfig(context: Context?, delegate: WebConfig.Delegate?) {
        context?: return
        delegate?: return
        delegate.addWebsite(AssetsWebsite(context, "/h5/"))
    }
}


  1. 启动本地服务
val mAndServer = AndServer.webServer(this)
    .port(8089)
    .timeout(10, TimeUnit.SECONDS)
    .listener(object : Server.ServerListener{
        override fun onStarted() {
            println("本地服务器启动")
            // 加载H5
            webview.loadUrl("http://127.0.0.1:8089/index.html")
        }

        override fun onStopped() {
            println("本地服务器停止")
        }

        override fun onException(e: Exception?) {
            e?.printStackTrace()
        }
    })
    .build()

mAndServer.startup()
完事
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/643373.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号