以编程方式清除Phonegap的InAppBrowser缓存

时间:2014-12-03 02:00:36

标签: javascript cordova caching inappbrowser

我正在使用Oauth 2.0将Google授权转换为混合应用。我正在使用PhoneGap的InAppBrowser API,它运行良好;但是,我希望能够在有人单击本地注销按钮后清除InAppBrowser的缓存。我试过添加" clearcache = yes"并且" clearsessioncache = yes",但他们似乎什么也没做。当有人尝试重新登录时,如果不清除缓存,则使用先前登录的帐户验证令牌。我可以退出的唯一方法是继续尝试登录,直到我获得Google权限屏幕并可以手动注销。有没有办法可以通过编程方式删除与InAppBrowser相关的所有内容?

由于

5 个答案:

答案 0 :(得分:12)

如上所述:clearcache or clearsessioncache仅适用于Android。阅读此API Doc

如果是 Android ,那么重新开启之前:

window.open("domain.com", "_blank", "location=no,clearsessioncache=yes"); 

对于 iOS :请检查this out

<强>备选方案:

  1. 直接或间接通过javascript清除会话Cookie(查看this - JQuery Cookie 清算)
  2. Phonegap / Cordova 插件,可让您清除网页浏览的Cookie ...请参阅this

答案 1 :(得分:4)

所选答案已过期,您现在可以在iOS和Andriod中使用./test标志。请参阅此处的文档:

https://github.com/apache/cordova-plugin-inappbrowser

所以正确的解决方案是使用

clearsessioncache

无论如何。另请注意

  

选项字符串不得包含任何空格和每个空格   要素的名称/值对必须用逗号分隔。功能名称   不区分大小写。

答案 2 :(得分:1)

我认为在inAppBrowser中从谷歌退出的最佳方式是打开网址

  

&#39; https://mail.google.com/mail/logout?hl=en&#39;

从中,它会自动将您从谷歌重定向到登录页面。如果您需要通过点击应用程序的任何按钮来执行此操作,则可以打开隐藏的inAppBrowser。

  

window.open(&#39; https://mail.google.com/mail/logout?hl=en&#39;,&#39; _blank&#39;,   &#39;隐藏= YES&#39)

此外,您可以执行另一项操作,您可以在每次调用Oauth网址之前以隐藏模式打开此网址。它将确保您之前的会话已注销,以便您提供不同的登录ID。

答案 3 :(得分:0)

iOS 用户请将此行添加到配置文件中

iOS 怪癖 自 iPadOS 13 推出以来,iPad 尝试调整其内容模式/用户代理以获得最佳浏览体验。这可能会导致 iPad 将其用户代理设置为 Macintosh,从而难以使用用户代理字符串嗅探将它们检测为移动设备。您可以使用 config.xml 中的 PreferredContentMode 首选项更改此设置。

<preference name="PreferredContentMode" value="mobile" />

上面的示例强制用户代理包含 iPad。另一种选择是使用 value desktop 将用户代理转换为 Macintosh。

答案 4 :(得分:-1)

您可能希望在 head 中为no-cache添加元标记。

这对我有用。