资讯专栏INFORMATION COLUMN

SinF的Electron系列之一---Cookie和localStorage

wangxinarhat / 2455人阅读

摘要:不支持之前在浏览器中使用的方法,暂时采用解决。需默认的是保存在主流程里面,所以需要使用模块提取的函数,我改写成了,用参考博客里面的方法,无法获得的返回值。官方文档参考博客使用代码通过模块取的原本在主进程中才能使用的模块获得清空缓存保存名称值

Electron不支持之前在浏览器中使用localstroage的方法,暂时采用cookie解决。

需Electron默认的cookie是保存在主流程里面,所以需要使用remote模块提取

getcookie的函数,我改写成了promise(),用参考博客里面的方法,无法获得cookie的返回值。

官方文档

https://electronjs.org/docs/a...

参考博客

https://blog.csdn.net/changhu...
使用
const Cookie = require("./static/js/cookie.js")

Cookie.getCookies("token").then(function (res) {
    console.log("res", res)
})
cookie.js代码
// cookie.js

// 通过remote模块取的原本在主进程中才能使用的session模块
const session = require("electron").remote.session;
/**
 * 获得
 */
const Cookie = {}
const Session = session
Cookie.getCookies = (name) => {
    let data = []
    return new Promise(function (resolve, reject) {
        Session.defaultSession.cookies.get({ name:name}, function (error, cookies) {
            console.log("cookies", cookies);
            if (cookies.length > 0) {
                data = cookies
            }
            resolve(cookies)
        })
    })

};
/**
 * 清空缓存
 */
Cookie.clearCookies = (url) => {
    Session.defaultSession.clearStorageData({
        origin: url,
        storages: ["cookies"]
    }, function (error) {
        if (error) console.error(error);
    })
};

/**
 * 保存cookie
 * @param name  cookie名称
 * @param value cookie值
 */
Cookie.setCookie = (name, value) => {
    let Days = 30;
    let exp = new Date();
    let date = Math.round(exp.getTime() / 1000) + Days * 24 * 60 * 60;
    const cookie = {
        url: "",
        name: name,
        value: value,
        expirationDate: date
    };
    Session.defaultSession.cookies.set(cookie, (error) => {
        if (error) console.error(error);
    });
};

// export default cookie
module.exports = Cookie

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/100255.html

相关文章

  • SinFElectron系列之三---electron-packager加载第三方资源

    摘要:在上篇的系列之二里我提到了,用字段来加载第三方资源。在项目开始的时候,我把第三方资源放到了根目录的文件夹里,发现并没有起到加载第三方资源的效果。通用查询,发现提供字段。 在上篇SinF的Electron系列之二里我提到了,用--extra-resource字段来加载第三方资源。 在项目开始的时候,我把第三方资源放到了根目录的static文件夹里,发现并没有起到加载第三方资源的效果。通用...

    hikui 评论0 收藏0
  • SinFElectron系列之二---electron-packager命令简析

    摘要:我使用来打包文件,打包的特点是,要写一大串命令,或者在根目录下的文件中配置相应的字段如下项目项目项目简单介绍一下用到的打包字段,详细 我使用electron-packager来打包文件,electron-packager打包的特点是,要写一大串命令,或者在根目录下的package.json文件中配置相应的字段如下: scripts: { start: electron ., ...

    wawor4827 评论0 收藏0
  • Electron】酷家乐客户端开发实践分享 — 入坑篇

    摘要:系列文章酷家乐客户端开发实践分享入坑篇酷家乐客户端开发实践分享软件自动更新酷家乐客户端开发实践分享浏览器启动客户端酷家乐客户端开发实践分享进程通信酷家乐客户端开发实践分享下载管理器不定期更新本文的初衷所使用的技术栈和前端工程师完美契合。 作者:钟离,酷家乐PC客户端负责人原文地址:https://webfe.kujiale.com/electron-ku-jia-le-ke-hu-d...

    jay_tian 评论0 收藏0
  • Electron】酷家乐客户端开发实践分享 — 入坑篇

    摘要:系列文章酷家乐客户端开发实践分享入坑篇酷家乐客户端开发实践分享软件自动更新酷家乐客户端开发实践分享浏览器启动客户端酷家乐客户端开发实践分享进程通信酷家乐客户端开发实践分享下载管理器不定期更新本文的初衷所使用的技术栈和前端工程师完美契合。 作者:钟离,酷家乐PC客户端负责人原文地址:https://webfe.kujiale.com/electron-ku-jia-le-ke-hu-d...

    TwIStOy 评论0 收藏0
  • 深入了解浏览器存储--从cookie到WebStorage、IndexedDB

    摘要:优异的性能表现,有一部分原因要归功于浏览器存储技术的提升。是服务端生成,客户端进行维护和存储。当超过时,它将面临被裁切的命运。此外很多浏览器对一个站点的个数也是有限制的。存入读取数据保存的数据,以键值对的形式存在。 前言 随着移动网络的发展与演化,我们手机上现在除了有原生 App,还能跑WebApp——它即开即用,用完即走。一个优秀的 WebApp 甚至可以拥有和原生 App 媲美的功...

    XGBCCC 评论0 收藏0

发表评论

0条评论

wangxinarhat

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<