【发布时间】:2019-02-14 18:36:53
【问题描述】:
我有一个应用程序(我们称之为主应用程序),它在资产文件夹中有一个 index.html 页面。 index.html 是一个带有一些 JavaScript 的简单 HTML 文件。它不需要 PHP 或 MySql。
我要做的是将 NanoHttpd 服务器嵌入到我的主应用程序中,并在应用程序启动或恢复时自动启动 Nano 服务器,并在我的应用程序中查看我的 index.html 文件。虽然我知道我可以使用
webView.loadUrl("file:///android_asset/index.html");
要访问 index.html 文件,在这种情况下不可能这样做。因此需要使用网络服务器。
现在我有一个不同的专用应用程序作为 Web 服务器,它运行在 http://localhost:8080。当我打开主应用程序时,它会自动运行。如您所见,为了查看 HTML 文件,您需要启动 Web 服务器,启动它,然后返回主应用程序并启动它。我想要一个解决方案,让 NanoHttpd 服务器在我的主应用程序午餐时自动启动并开始在 web 视图上显示 index.html 内容。这是我的代码,可以完美地使用我的主应用程序和网络服务器
WebView wv;
wv = (WebView) findViewById(R.id.webView1);
WebSettings webSettings = wv.getSettings();
webSettings.setJavaScriptEnabled(true);
wv.loadUrl("http://localhost:8080/index.html");
虽然 O 找不到它的确切文档,但我从以下链接尝试了两种不同的方法
两者都不起作用,一个只是显示一个白页,而其他的只是给我一个服务器正在运行的响应。
那么如何在我的应用程序启动时自动启动 NanoHttpd 服务器并自动将我的资产文件夹中的 html 文件启动到 web 视图? 如果对 NanoHttpd 的要求太多了,有没有另一种方法可以在应用程序中嵌入网络服务器并启动 index.html?
【问题讨论】:
-
只是一个普通的 WebView.loadUrl(asset.html) 不适合您的项目?如果您有一个没有太多复杂性的构建网站(例如 php、mysql 等),只需将此网站复制到您的资产文件夹并在您的 webview 上打开它。在这种情况下,不需要 httpd 守护进程。
-
@statosdotcom index.html 实际上是一个包含大量 JavaScript 的 html 文档。无需 php,无需 MySQL。由于浏览器安全性,无法通过 file:/// 加载文件
标签: android webserver android-webview