例如,访问 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/