开机启动雷电模拟器 全屏 启动指定app
因为项目需要在一台触摸一体机上浏览VR网页,但是window对VR网页的触摸控制基本无效,所以考虑将一体机刷成android_x86.但是android_x86的网站一直打不开,没办法,只能用模拟器试试,于是有了下面这番折腾,记录一下,免得下次还要重新想
一.将vr网页打包成安卓app.
1.创建vr场景网页项目
新建一个react项目,将所有的vr场景网页放入public目录.将所有的vr场景连接放入组件,点击后使用iframe展示
import React, { useState } from "react";
import "./thumbnail.css";const roomList = ["报告厅","大厅","公共安全","火灾逃生通道","家庭安全","交通安全","入口","消防安全","校园安全","心理健康咨询","应急救护",
];const Thumbnail = () => {const [selectedRoom, setSelectedRoom] = useState("");const handleClick = (room: string) => {setSelectedRoom(room);};const handleBackClick = () => {setSelectedRoom("");};const findIndex = (room: string) => {const res = roomList.findIndex((item) => item === room) + 1;console.log(res);return res + "";};return (<div className="thumbnail">{selectedRoom ? (<iframesrc={`./assets/vr/${findIndex(selectedRoom)}/pano/index.html`}style={{ width: "100%", height: "100%" }}title={selectedRoom}/>) : (<><img src="./assets/map.png" alt="地图" className="thumbnail-bg" />{roomList.map((room, index) => {return (<imgsrc="./assets/camera.png"alt="房间"className={`camera ${room}`}onClick={() => handleClick(room)}/>);})}</>)}{selectedRoom && (<imgsrc="./assets/return.png"alt="返回"className="back-button"onClick={handleBackClick}/>)}</div>);
};export default Thumbnail;
重点在package.json增加 "homepage": "./",否则打包出来的app是空白的
"homepage": "./",
运行项目,查看是否成功
yarn start
如果运行正确,则build项目
yarn build
2.打包app
注册账号,并下载HBuilder X,创建空的5+app项目
将上面build出来的react项目build目录中,除了manifest.json(重点),复制进新建的5+app目录
删除无用的空目录 .
在HBuilder X中双击manifest.json,进行app配置
生成图标
由于此app只是浏览vr网页,无需任何权限,所以在模块配置中,去掉所有模块
在app常用其他设置中选择支持的cpu类型
打包,发行->云打包
等待打包成功,后在目录中找到app
二.使用golang编写启动模拟器和app的程序
1.编写yaml配置文件config.yaml
file_location: "D:\\leidian\\LDPlayer9\\dnplayer.exe"
wait_time: 10
send_key: "f11"
execute_command:command: "D:\\leidian\\LDPlayer9\\dnconsole.exe"parameters:- "runapp"- "--index"- "0"- "--packagename"- "com.xx.kkllhh"
file_location为模拟器的地址
wait_time为等待模拟器启动的时间,单位是秒
send_key为设置模拟器全屏的快捷键,f大写无效
execute_command为运行指定app的命令,需按实际修改最后一行的"com.xx.kkllhh"包名.包名可以在云打包的界面中查看
2.golang程序
package mainimport ("fmt""io/ioutil""os""os/exec""time""github.com/go-vgo/robotgo""gopkg.in/yaml.v2"
)type Config struct {FileLocation string `yaml:"file_location"`WaitTime int `yaml:"wait_time"`SendKey string `yaml:"send_key"`ExecuteCommand struct {Command string `yaml:"command"`Parameters []string `yaml:"parameters"`} `yaml:"execute_command"`
}func main() {config := readConfig("config.yaml")// Open the exe programfmt.Println("Opening the exe program...")cmd := exec.Command(config.FileLocation)err := cmd.Start()if err != nil {fmt.Printf("Error starting the program: %v\n", err)return}// Wait for the specified durationwaitWithCountdown(config.WaitTime)// Activate the windowfmt.Println("Activating the window...")pid := int32(cmd.Process.Pid)robotgo.ActivePID(pid)// Move the mousefmt.Println("Moving the mouse...")moveMouse()//等待1秒time.Sleep(1 * time.Second)// Send the specified keyfmt.Printf("Sending key: %s\n", config.SendKey)robotgo.KeyTap(config.SendKey)//等待1秒time.Sleep(1 * time.Second)// Execute the commandfmt.Println("Executing the command...")command := exec.Command(config.ExecuteCommand.Command, config.ExecuteCommand.Parameters...)commandOutput, err := command.CombinedOutput()if err != nil {fmt.Printf("Error executing command: %v\n", err)return}fmt.Printf("Command output: %s\n", string(commandOutput))
}func readConfig(configFile string) Config {data, err := ioutil.ReadFile(configFile)if err != nil {fmt.Printf("Error reading config file: %v\n", err)os.Exit(1)}var config Configerr = yaml.Unmarshal(data, &config)if err != nil {fmt.Printf("Error unmarshalling config file: %v\n", err)os.Exit(1)}return config
}func waitWithCountdown(seconds int) {for i := seconds; i > 0; i-- {fmt.Printf("Waiting... %d seconds remaining\n", i)time.Sleep(1 * time.Second)}
}func moveMouse() {// 首先直接鼠标位置设置为 (800, 800)robotgo.Move(800, 800)// 然后,完成一次点击,(按下弹起)robotgo.Click("left")// 注意鼠标两次点击之间应当有一个时间间隔,否则可能不会触发双击的time.Sleep(100 * time.Millisecond)// 再来一次点击robotgo.Click("left")// 等待 2 秒钟(2000 毫秒)time.Sleep(2 * time.Second)// 将鼠标光标移动到另一个位置(2000, 2000)robotgo.Move(2000, 2000)
}
go程序的作用是打开模拟器->等待配置文件中设置的等待时间->移动鼠标点击模拟器->发送全屏快捷键->执行打开指定app的命令
三.在pc中的设置
1.将golang编译出来的程序和配置文件拷入D盘
2.在windows的启动目录中放入start.exe的快捷方式,并将start.exe修改为管理员权限
重启PC,自动启动模拟器,然后启动指定app
已经编译好的go程序和配置文件
自动启动雷电模拟器,然后启动指定app-其他文档类资源-CSDN文库
开机启动雷电模拟器 全屏 启动指定app相关推荐
- 开机自启动夜神模拟器全屏并打开指定apk
公司最近提了个新的需求,要求用模拟器开机自启动指定apk并全屏,没太弄过这个方面,在网上找了些方法解决了,在这里记录一下. 解决方案: 思路大致是用批处理文件打开模拟器,然后通过模拟键盘按键用全屏快捷 ...
- 树莓派开机不加载桌面全屏启动chromium浏览器
编辑/etc目录下的profile文件. sudo nano /etc/profile 在这个文件的顶部 输入chromium可执行文件的绝对路径,正常为 /usr/lib/chromium-brow ...
- Chrome浏览器全屏打开指定网页以及开机自启
前言 最近一个项目是给社区做一个便民服务,设备是室外触摸大屏(windows系统),而项目载体居然是web网页.项目的核心是只给用户使用网页上的内容,那么需求就很明确了: 浏览器全屏打开指定网页 浏览 ...
- 如何将谷歌浏览器设置为开机全屏启动指定网页
第一步,添加指定网页全屏启动. 首先,将谷歌浏览器发送至桌面快捷方式. 在快捷方式上点击右键,选择属性,在目标栏最后打一个空格,输入--kiosk 需要全屏启动的网址.(配置好后关闭所有浏览器,再打开 ...
- 开机全屏启动谷歌浏览器,打开指定页面,不可关闭最小化和还原
一.首先创建一个浏览器的快捷方式 二.右键快捷方式->属性 目标 :"C:\Program Files (x86)\Google\Chrome\Application\chrome_p ...
- 虚拟桌面启动后自动全屏
如果客户端有多个显示器,打开虚拟桌面后,如果需要进入到全屏模式(覆盖所有的客户端显示器),目前还是需要一定技巧的,需要把桌面拖放到两个屏幕的中间,然后全屏才可以实现.否则,简单的全屏只会覆盖当前所在的 ...
- 雷电模拟总是显示android启动,雷电模拟器启动失败如何解决?启动失败解决方法图文分享...
雷电模拟器启动失败卡在0-29%怎么解决?有很多用户在启动雷电安卓模拟器程序时,发现程序启动卡在0-29%,启动失败的情况,下面通过这篇文章给大家讲讲怎么解决. 雷电安卓模拟器加载时卡在89%解决方法 ...
- 应用全屏启动页适配小米9(水滴屏)
启动页的简单制作 网上已经有这方面的教程,我选用的是我认为比较方便简单的方式,首先创建Activity: class LunchActivity : AppCompatActivity() {over ...
- 雷电模拟器一直android正在启动,雷电模拟器启动失败卡在0-29%怎么解决 加载卡0-29%教程...
雷电模拟器启动失败卡在0-29%怎么解决?有很多用户在启动雷电安卓模拟器程序时,发现程序启动卡在0-29%,启动失败的情况,下面通过这篇文章给大家讲讲怎么解决. 雷电模拟器使用教程==>雷电安卓 ...
最新文章
- 开发日记-20190328 关键词 利用eolinker一键快速生成API接口文档
- w3cschool的jQuery Mobile教程总结
- 转货币格式和 rgb转hex
- 尝试在centos5下运行phantomjs2
- 2-4 测试案例helloWorld
- 从拉格朗日乘数法到KKT条件
- 使用jsp,tag提取字符串中的单词
- Flume监听文件夹中的文件变化_并把文件下沉到hdfs
- ipv6 ripng配置
- 基于 C#遥感图像处理方法(代码实现)
- 如何使用Zend Expressive建立NASA照片库
- ubuntu下vscode配置C++项目编译调试(json文件),以高翔octomap教程为例,顺便解决vscode无法设置断点问题.
- android pie mi 3 tab,前沿科技:三星Galaxy Tab S3和Tab A(2017)正在获得Android 9.0 Pie更新
- 对分解和组合思维方法的理解
- 系统自带的最便捷的远程控制方法
- POJ - 3067
- 重装系统Win7步骤
- 编写一个函数,计算两个数字的和,差,积,商
- NOI Linux备忘(竞赛)
- 开源一款娱乐的qq机器人-QQRobot
热门文章
- 【tensorflow.js学习笔记(1)】tf.js环境搭建及曲线拟合例子
- python向上取整_python怎么向上取整
- Mac中如何查看java版本
- python 水晶报表_什么是水晶报表与水晶报表功能分析
- 大象装企营销:不会内容营销的装饰公司一定要看
- 莫西的伤感情侣日志推荐:分手的那一刻,我们变得陌生
- 跳舞的伤感心情日志:你恋或者不恋,爱就在那里
- Ubuntu16.04桌面指南6--文件、文件夹和搜索
- 荣耀8X鸿蒙OS系统,华为全面启用鸿蒙OS系统!所有华为终端设备:默认搭载鸿蒙系统...
- 本周最新文献速递20210822