我正在开发一个react-native run-android
应用程序,每次我想更新实际手机或模拟器的更改时,我执行react-native run-android --device=XXXXXX
(有时我在模拟器中使用重新加载功能)。
我的问题是,是否有可能指定命令将在哪个设备/模拟器中运行,因为当我连接它时它将运行并在最近运行/插入时更新应用程序。
所以我会想象这样的事情:
var elems = document.getElementsByClassName('ProdSkus');
var arr = [];
Array.from(elems).forEach(v => arr.push(v.innerHTML));
console.log(arr);
我一直在做一些研究,到目前为止还没有找到答案,所以我希望有人对它有所了解。谢谢!
答案 0 :(得分:1)
如果你浏览文档,那么你会发现还有两个命令可用于启动服务器,而且到目前为止还没有这样的react-native run-android --- // deviceID命令可用,但你可以自定义在node_modules中对本机代码做出反应,为自己制作该命令。
这两个命令是:
1)react-native start
2)npm start
干杯:)
答案 1 :(得分:1)
TL; DR::adb devices
,然后是npx react-native run-android --deviceId [DEVICE_ID]
首先,插入设备,或使用Android Emulator CLI启动仿真器。
emulator -list-avds
将列出您的avds(Android虚拟设备),例如Pixel_2_API_29
emulator -avd Pixel_2_API_29
或emulator @Pixel_2_API_29
将启动指定的设备。emulator -help
了解更多信息。npx react-native run-android
。 它将在所有Android设备(包括物理设备和AVD)上启动您的应用。
如果您只想指定1个设备(为什么不在所有设备上都运行!):adb devices
,以获取设备ID的列表,例如1cfe4i231414523
npx react-native run-android --deviceId 1cfe4i231414523
PS:React本机入门指南指定您应卸载react-native,而应通过npx使用该软件包。卸载npm rm -g react-native
。现在,每次要运行本机时,请使用npx react-native [command]
。 npx的作用是在本地node_modules
中查找并从本地运行它,而不是可能已经过时的全局react-native
包。
我想补充一下,对于iOS,不需要这些步骤。只需运行npx react-native run-ios
,iOS模拟器就会随您的应用一起启动。