我正在使用Oauth 2.0将Google授权转换为混合应用。我正在使用PhoneGap的InAppBrowser API,它运行良好;但是,我希望能够在有人单击本地注销按钮后清除InAppBrowser的缓存。我试过添加" clearcache = yes"并且" clearsessioncache = yes",但他们似乎什么也没做。当有人尝试重新登录时,如果不清除缓存,则使用先前登录的帐户验证令牌。我可以退出的唯一方法是继续尝试登录,直到我获得Google权限屏幕并可以手动注销。有没有办法可以通过编程方式删除与InAppBrowser相关的所有内容?
由于
答案 0 :(得分:12)
如上所述:clearcache or clearsessioncache
仅适用于Android。阅读此API Doc
如果是 Android ,那么重新开启之前:
window.open("domain.com", "_blank", "location=no,clearsessioncache=yes");
对于 iOS :请检查this out。
<强>备选方案:强>
答案 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添加元标记。
这对我有用。