electron获取webview、主窗口,以及子窗口Cookies( 二)

在electron中需要获取Cookies信息,对于这一块内容网上极少,Cookies获取和设置也没有详细的资料,对于想学习electron又没有教程以及资料的情况下研究是非常痛苦的,所以将学到的整理出来,填补这一块空白。

获取Cookies的同时先了解一下session做什么用的,Session可以管理浏览器会话cookie缓存代理设置等。知道了这个就可以获取Cookies了

可以使用WebContentssession属性或 session模块访问现有页的session

一、获取主窗口Cookies

方式一:用WebContents获取主窗口Cookies

	
const { BrowserWindow } = require('electron')
const win = new BrowserWindow({ width: 800, height: 600 })
win.loadURL('http://github.com')
const ses = win.webContents.session.cookies //获取到主窗口的Cookies
//获取Cookies
ses.cookies.get({ url: 'https://www.electronjs.org/' })
  .then((cookies) => {
    console.log(cookies)
  }).catch((error) => {
    console.log(error)
  })
//设置Cookies
ses.cookies.set({ url: 'https://www.electronjs.org/',name:"dummy_name",value:"dummy" })
  .then((cookies) => {
    console.log(cookies)
  }).catch((error) => {
    console.log(error)
  })

方式二:用session模块获取现有页面的Cookies

const { session } = require('electron')
//获取页面Cookies
session.defaultSession.cookies.get({ url: 'https://www.electronjs.org/' })
  .then((cookies) => {
    console.log(cookies)
  }).catch((error) => {
    console.log(error)
  })
//设置页面Cookies
const cookie = { url: 'https://www.electronjs.org', name: 'dummy_name', value: 'dummy' }
session.defaultSession.cookies.set(cookie)
  .then(() => {
    // success
  }, (error) => {
    console.error(error)
  })
//删除Cookies
const cookie = { url: 'https://www.electronjs.org', name: 'dummy_name'}
session.defaultSession.cookies.remove(cookie.url,cookie.name)
  .then(() => {
    // success
  }, (error) => {
    console.error(error)
  })

二、获取子窗口的Cookies

const { BrowserWindow } = require('electron')
const win = new BrowserWindow({ width: 800, height: 600 })
win.loadURL('http://github.com')
const view = new BrowserView()
win.setBrowserView(view)
view.setBounds({ x: 0, y: 0, width: 300, height: 300 })
view.webContents.loadURL('https://electronjs.org')
const ses = view.webContents.session.cookies //获取到主窗口的Cookies
//使用方式如上一样

三、获取webview 的Cookies

//渲染端开启webview
<webview src="https://www.github.com/" httpreferrer="http://cheng.guru" useragent="Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko" partition="electron"></webview>
const { session } = require('electron')
const ses = session.fromPartition("electron")
ses.cookies.get({url:'https://github.com'}).then(function(cookies,error){
      console.log(cookies);
  });

你可能感兴趣的:(electron,javascript,前端)