通过 appetize.io 以编程方式截取我的 React Native 应用程序的屏幕截图
Programmatically take screenshot of my React Native app via appetize.io
我想每天以编程方式截取我的 React Native 应用程序的屏幕截图。它将由远程服务器上的 cron 作业 运行。
我找到的最简单的方法如下:
- 在 appetize.io 上上传我的应用程序(如果有兴趣,它是 here)
- 启动加载上述内容的无头浏览器link(我正在使用 puppeteer)
- 告诉 puppeteer 等待 10 秒(应用程序加载)并截取屏幕截图,或者更好的是,根据 appetize 的 xDoc messages api 发送
window.postMessage('saveScreenshot', '*')
。
唯一的问题是,在某些时候,应用会显示“请求位置”屏幕:
而且我不能告诉 puppeteer 以编程方式单击该按钮(或者我可以吗?)。所以我在10秒后得到的截图就是上面那个。 appetize 的文档中有一个 xDoc mouseclick(x, y)
方法,但这看起来很 hacky。
知道如何绕过这个请求位置弹出窗口吗?
PS:我还探索了以下截取 RN 应用程序的想法:
- react-native-web: 删除了一些mobile-only的代码后可以用,但是截图的布局很破,所以没追
在远程服务器上- 运行一个模拟器(android模拟器可能更简单),并告诉它截屏。没有深入研究,但这意味着更复杂。
对于对我的回答感兴趣的人,我最后使用了 xDoc mouseclick(x, y)
方法来点击允许按钮。
要查看完整代码,请查看此文件:https://github.com/shootismoke/buffer-bot/blob/master/src/getScreenshot.js
我想每天以编程方式截取我的 React Native 应用程序的屏幕截图。它将由远程服务器上的 cron 作业 运行。
我找到的最简单的方法如下:
- 在 appetize.io 上上传我的应用程序(如果有兴趣,它是 here)
- 启动加载上述内容的无头浏览器link(我正在使用 puppeteer)
- 告诉 puppeteer 等待 10 秒(应用程序加载)并截取屏幕截图,或者更好的是,根据 appetize 的 xDoc messages api 发送
window.postMessage('saveScreenshot', '*')
。
唯一的问题是,在某些时候,应用会显示“请求位置”屏幕:
而且我不能告诉 puppeteer 以编程方式单击该按钮(或者我可以吗?)。所以我在10秒后得到的截图就是上面那个。 appetize 的文档中有一个 xDoc mouseclick(x, y)
方法,但这看起来很 hacky。
知道如何绕过这个请求位置弹出窗口吗?
PS:我还探索了以下截取 RN 应用程序的想法:
- react-native-web: 删除了一些mobile-only的代码后可以用,但是截图的布局很破,所以没追 在远程服务器上
- 运行一个模拟器(android模拟器可能更简单),并告诉它截屏。没有深入研究,但这意味着更复杂。
对于对我的回答感兴趣的人,我最后使用了 xDoc mouseclick(x, y)
方法来点击允许按钮。
要查看完整代码,请查看此文件:https://github.com/shootismoke/buffer-bot/blob/master/src/getScreenshot.js