我有一个离子/Angular 的应用程序,其中我使用InAppBrowser插件来使用我公司的Web应用程序。
InAppBrowser通常工作正常,但在Web应用程序中有一个cookie,用于过滤Web应用程序中的某些列表。当用户过滤并输入(例如)列表中的特定客户端并使用硬件后退按钮返回时,过滤器将消失。从PC返回时,过滤器将保留,这意味着保持高速缓存。
当我使用DevTools(来自Google Chrome:chrome://inspect)来检查Ionic应用程序,cookie可以工作,但当我不使用它时,它就不能工作了,就像我上面提到的那样。似乎在InAppBrowser中执行硬件后退按钮时,缓存不会被维护或加载。所有这些都没有更改代码中的任何内容。
下面是我创建InAppBrowser的方法:
browser = this.iab.create(pageContentUrl, '_blank', 'location=no,zoom=no,fullscreen=no,clearcache=no,clearsessioncache=no,hidden=yes,toolbar=no');
所以我想知道是否有一种方法,当我点击硬件上的后退按钮时,它会加载带有cookie/缓存的上一页,或者它是否真的不应该加载任何东西,因为过滤器已经被应用,cookie已经被覆盖。
我试过将clearcache和clearsessioncache设置为"no",但似乎没有任何效果。然后用DevTools检查器检查,一切正常,但当我不使用它时,它就不工作了,就像DevTools缓存了一切,但当我不使用它时,它就不像我期望的那样工作了。
我期望发生的是,例如,当用户使用Web应用程序中的过滤器时,当硬件后退按钮被按下时,该过滤器(保存在cookie中)被维护,就像在PC上使用Web应用程序时一样。现在发生的是,当使用硬件后退按钮时,已经制作的过滤器消失了,但问题是cookie仍然存在,由于使用DevTools,因此无需对代码进行任何更改即可工作。
先谢谢你了。
我的Ionic信息:
Ionic:
Ionic CLI : 6.20.1 (C:\Users\david\AppData\Roaming\npm\node_modules\@ionic\cli)
Ionic Framework : @ionic/angular 6.2.5
@angular-devkit/build-angular : 14.2.1
@angular-devkit/schematics : 14.2.1
@angular/cli : 14.2.1
@ionic/angular-toolkit : 6.1.0
Capacitor:
Capacitor CLI : 4.1.0
@capacitor/android : 4.1.0
@capacitor/core : 4.1.0
@capacitor/ios : 4.1.0
Utility:
cordova-res : 0.15.4
native-run : 1.6.0
System:
NodeJS : v16.15.1 (C:\Program Files\nodejs\node.exe)
npm : 8.11.0
OS : Windows 10
- 更新**
当用户使用过滤器和使用硬件后退按钮时,cookie/缓存没有正确加载,我关闭了应用程序,并再次尝试执行用例的相同步骤,一切正常,更重要的是,包含列表的页面已经通过cookie加载了过滤器。所以看起来第一次尝试时失败了,所以失败仍然存在。
1条答案
按热度按时间vawmfj5a1#
您只需要在webview中启用JAVA脚本来允许缓存和cookie。
同时覆盖activity的后退按钮,将其用作webview上的后退按钮: