相关疑难解决方法(0)

动态触发HTML5缓存清单文件?

我正在使用HTML5中的新缓存清单功能来缓存我的Web应用程序,以便它可以脱机工作.当页面加载以下html元素时,内容将自动缓存:

<html lang="en" manifest="offline.manifest">
Run Code Online (Sandbox Code Playgroud)

这很好用.但是,我想让我的用户可以选择是否要将内容缓存离线.所以,这是我的问题:

有没有办法触发应用程序在运行时使用JavaScript缓存,而不是在加载页面时自动完成.

例如,像这样的东西(使用jquery):

---------------- --------------的index.html

<head>
 <meta charset="utf-8" />

 <script src="http://code.jquery.com/jquery-1.4.4.min.js"></script> 
 <script type="text/javascript" src="Main.js"></script> 

</head>
<body>

 <button id="cacheButton">Cache Page</button>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

--------- --------- Main.js

$(document).ready(
 function()
 {
  $('#cacheButton').click(onCacheButtonClick);
 }
)

function onCacheButtonClick(event)
{
 console.log("Setting Offline Manifest");
 $('#htmlRoot').attr("manifest","offline.manifest");
}
Run Code Online (Sandbox Code Playgroud)

------------- ------------- offline.manifest

CACHE MANIFEST

#version .85

#root
index.html
scripts/main.js

#jquery assets
http://code.jquery.com/jquery-1.4.4.min.js
Run Code Online (Sandbox Code Playgroud)

基本上,当单击按钮时,我动态设置html元素的manifest属性.这有效(在某种意义上,元素已设置),但它不会导致浏览器缓存页面.

有什么建议?

javascript html5 caching offline

21
推荐指数
2
解决办法
9985
查看次数

服务工作者的WKWebView模拟

我正在尝试使用PWA方法来实现应用程序的一部分,该方法在上可以正常使用Android,但不适用于iOS。我们需要

  • 离线内容的可用性
  • 动态更新内容的选项(例如特价商品等)。与服务人员一起,我们显示提示更新Web内容。

由于被提及这里的服务人员不中支持WKWebView(或UIWebView)。那么,是否存在模拟或替代解决方案,例如智能缓存控制?

似乎可以存储来自应用程序的某些Web内容,并能够在发生某些更改时对其进行更新。可能已经有一个framework/library/approach用于此目的的软件吗?

编辑 iOS 11.3的WKWebView中不可用的Service Workers-此问题解释了WKWebView中ServiceWorkers的状态,但没有其他选择。我想讨论任何其他解决方案。

我发现的一件事是https://github.com/xtools-at/iOS-PWA-Wrapper。看起来像是基于AppCache进行工作,但是https://developer.mozilla.org/zh-CN/docs/Web/HTML/Using_the_application_cache#Browser_compatibility表示已弃用,建议使用SW(建议不要使用SW(PWA不能选择此选项) )。

caching ios wkwebview service-worker progressive-web-apps

6
推荐指数
1
解决办法
1607
查看次数