cookies - 如何使用 Capacitor Browser 插件操作/清除 cookie
问题描述
我需要清除使用 Capacitor Browser Plugin 打开的网站的 cookie。我找不到办法。
在 Capacitor Browser 插件中有一个“browserPageLoaded”侦听器,这是放置我的代码的理想位置,但我仍然找不到任何访问 cookie 的方法。您如何从那里访问 cookie?
解决方案
不幸的是,这是不可能的,浏览器插件在 iOS 上使用 SFSafariViewController,在 Android 上使用 Chrome 自定义选项卡,出于安全原因不共享 cookie,请在此处查看答案https://github.com/ionic-team/capacitor-plugins/问题/7。要解决这个问题,您可以使用 Cordova 的 inAppBrowser,它也适用于 Capacitor https://ionicframework.com/docs/native/in-app-browser。在选项中有“clearcache”和“clearsessioncache”。选项和示例列表可在以下链接https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-inappbrowser/中找到。
例子:
安慰:
npm install cordova-plugin-inappbrowser
npm install @ionic-native/in-app-browser
ionic cap sync
代码:
import {
InAppBrowser,
InAppBrowserObject,
InAppBrowserOptions,
} from "@ionic-native/in-app-browser/ngx";
constructor(private iab: InAppBrowser) {}
createNewPageBrowserInApp(url, target) {
if (this.iab) {
this.currentPageInAppBrowser = this.iab.create(
url,
target,
this.options(inAppBrowserType)
);
}
}
options(inAppBrowserType: InAppBrowserType): InAppBrowserOptions {
switch (inAppBrowserType) {
case InAppBrowserType.NavigationPage: {
console.log("InAppBrowserType.NavigationPage");
return {
toolbarcolor: "#FFFFFF",
location: "yes",
hidden: "no",
clearcache: "yes",
clearsessioncache: "yes",
zoom: "yes", //Android only
hardwareback: "yes",
mediaPlaybackRequiresUserAction: "no",
hidenavigationbuttons: "no",
navigationbuttoncolor: "#428bca",
hideurlbar: "yes",
shouldPauseOnSuspend: "no", //Android only
disallowoverscroll: "no", //iOS only
usewkwebview: "yes", //iOS only
toolbar: "yes", //iOS only
enableViewportScale: "no", //iOS only
allowInlineMediaPlayback: "yes", //iOS only
presentationstyle: "pagesheet", //iOS only
fullscreen: "no", //Windows only
useWideViewPort: "yes",
};
}
InAppBrowserType 是一个供内部使用的枚举类型
推荐阅读
- php - 如何从文件路径检查文件扩展名?
- c++ - 将 Quadprog++ 与 Eigen 一起使用时出现 C++ 编译错误
- php - 使用 GET、POST 和 GLOBALS
- polymer - 延迟加载聚合物 3 中其他服务的 Web 组件
- notepad++ - 附加起始号码
- c# - 多个项目传递到 Microsoft.Build.Framework.ITaskItem。使用 clickOnce 发布时
- pdf - 如何成功地将数学论文转换为纯文本
- laravel - 在 Laravel 中将数据从 SQL 记录到 Redis
- html - 单元格为空时 HTML 表格单元格大小不正确
- json - 在 React 中按日期排列 JSON 数据——没有中断,没有任何工作