javascript - 如何使我的 Electron 应用程序表现得像移动设备

标签 javascript google-chrome electron instagram user-agent

例如,访问 instagram.com/direct/inbox/会出现 404 错误,但当您打开开发工具的“设备工具栏”并选择移动设备时,Instagram 会显示 DM 页面。

我正在尝试在一个小型 Electron 应用程序中执行此操作,并且我已经尝试将用户代理设置为 ipad/三星应用程序,但 Instagram 仍然检测到它不是真正的设备,并且仍然将我重定向到主页。

这是我的代码:

const {app, BrowserWindow, session} = require('electron')
const path = require('path')

function createWindow () {

  const mainWindow = new BrowserWindow({
    width: 400,
    height: 850,
  })

  session.defaultSession.webRequest.onBeforeSendHeaders((details, callback) => {
    details.requestHeaders['User-Agent'] = 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.106 Mobile Safari/537.36';
    callback({ cancel: false, requestHeaders: details.requestHeaders });
  });

  mainWindow.loadURL('https://instagram.com/direct/inbox')

}

app.on('ready', createWindow)

// Quit when all windows are closed.
app.on('window-all-closed', function () {
  if (process.platform !== 'darwin') app.quit()
})

app.on('activate', function () {
  if (BrowserWindow.getAllWindows().length === 0) createWindow()
})

我错过了什么吗?

最佳答案

阅读文档webContents方法https://www.electronjs.org/docs/api/web-contents

尝试一下,它对我有用

  mainWindow = new BrowserWindow({width: 412, height: 732, title: 'Instagram Desktop'})

  // and load the index.html of the app.
  mainWindow.webContents.setUserAgent("Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko; googleweblight) Chrome/38.0.1025.166 Mobile Safari/535.19");
  mainWindow.loadURL('https://instagram.com/direct/inbox')

成立于https://github.com/azishapidin/instagram-electron/blob/master/main.js

关于javascript - 如何使我的 Electron 应用程序表现得像移动设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60231136/

相关文章:

javascript - 制作 Jquery Accordion 脚本以允许一页上有多个 Accordion

javascript - twitter bootstrap 选项卡和 getBBox

javascript - Onclick javascript 停止在 Chrome 中提交表单

javascript - 如何在 Chrome 扩展程序中操作新窗口?

javascript - 如果数据很大,JQuery ajax 不会在 POST 中发送完整数据

javascript - 在每组字符后分割一个字符串

javascript - 无法通过 JS 中的 Emscripten 获取 C++ SDL 代码

ruby-on-rails - rails : Gravatar images not showing up in Chrome

node.js - 在我的Electron应用程序中,我应在哪里执行首次启动功能?

javascript - Highchart 范围选择器不显示