我有一个使用Create React App构建的托管Web应用程序,该应用程序利用服务工作者来允许应用程序在脱机时打开和查看。
我将Cordova用作混合应用程序包装,它使用cordova-plugin-inappbrowser加载外部Web内容并将其显示在本机ios或android设备上给用户。
我希望在网络中断时能够打开应用程序(假设用户已经打开过一次并且内容已被缓存)。据我所知,当服务工作者被加载到内置浏览器中并且互联网可以正常工作时,它似乎正在正确运行并缓存内容。它的控制台日志输出表明正在发生这种情况。
如果在禁用网络的情况下关闭并重新打开了应用程序,则该应用程序将报告网络错误,并且不会加载。这是产生错误的代码行:
inAppBrowserRef = cordova.InAppBrowser.open(url, '_blank', 'location=no,zoom=no,toolbar=no,hidenavigationbuttons=yes'); //open the in app browser with no location bar
在继续执行任何服务程序代码之前,该代码似乎试图验证URL是否存在。有没有办法告诉InAppBrowser首先从缓存的内容而不是网络URL加载?
答案 0 :(得分:1)
服务工作者在iOS 14中可用于WKwebview,并且有使用它的IAB版本。 com.apple.developer.WebKit.ServiceWorkers应该作为值为YES的布尔值添加到.entitlements plist中。 您要在IAB中加载的网站应该是https或localhost。