2

我正在制作一个应用程序,其中用户想要查看的主要内容是 html 页面的形式,我实际上是从 iphone 移植一个应用程序并希望重用这些页面,因为它们有 100 个并将它们重新创建为android布局将非常耗时。问题是,在 android 上,我第一次打开页面时 webview 需要大约 4-5 秒来加载,随后每次需要几秒钟。

我搜索并找到了类似的答案,但不知道它是否适合我的情况(预加载 webview)。这个答案建议使用已加载多个 webview 的 viewflipper,因此当您在它们之间切换时,它会立即加载。我不知道这是否对我有用,因为我有 100 个不同的页面要缓存(尽管我可以通过仅加载用户可以从当前页面导航到的页面将其优化到最大约 30 个)并且因为 webviews 在与用户单击以查看页面的按钮不同的活动。即用户正在查看一个列表视图,其中包含大约 30 个不同的页面选项可供查看,当他们单击列表视图条目时,它会打开带有 web 视图的活动,我必须等到用户点击开始加载 web 视图,所以那里没有办法减少任何加载时间。

我想由于 listview 和 webview 活动是相同的,只是标题的一个小视图,然后是 webview 或它下面的列表,我可以合并到一个活动中,并在视图翻转器中拥有 listview 以及所有 webview我唯一会失去的是listview活动和webview活动之间的转换,这没什么大不了的。这个解决方案行得通吗?我真的应该只缓存多达 30 个网页浏览页面吗?我不认为这是一个可行的解决方案,我想问是否有比我更擅长 android 编程的人有更好的解决方案。如果我可以只预加载一个页面就足够了,虽然不是最佳的,因为加载第二、第三、第四等页面只需要几秒钟。

tl:dr - webview 需要 5 秒来加载第一页,之后每页加载一对。我不想让它即时,但如果这不可能,我想至少预加载第一个(idk 加载哪个 html 页面,直到用户实际点击一个选项 btw,并且有 100 个不同的选项)所以它没有不用5秒。现在我正在寻找一种方法来预加载/缓存多达 30 个页面,以便所有用户选项都已加载,但这可能会占用大量内存。还考虑找到一种在后台打开活动并使用任何页面加载 webview 的方法,没关系,只是为了度过最初的 5 秒加载时间。

抱歉,由于某种原因,我实际上在措辞上遇到了麻烦,我希望你能按照我的努力去做。谢谢

哦顺便说一句 - 所有的 html 都本地存储在我的资产文件夹中,我正在使用 webView.loadUrl("file:///android_asset/About cards.html"); 等加载页面

4

0 回答 0