我有一个基本的react-native
应用,我在真正的Nexus 5 上运行,我找不到启用iOS
和react-native run-android
的开发人员菜单的方法仿真设备。
https://facebook.github.io/react-native/docs/debugging.html
https://facebook.github.io/react-native/docs/running-on-device.html
方法1:使用adb reverse(推荐)
如果,您可以使用此方法 你的设备运行的是Android 5.0(Lollipop),它有USB调试功能 已启用,并通过USB连接到您的开发机器。在命令提示符中运行以下命令:
$ adb reverse tcp:8081 tcp:8081您现在可以使用Reload JS了 React Native in-app Developer菜单,无需任何额外功能 配置。
当我运行Running adb -s 06adb216 reverse tcp:8081 tcp:8081
时,我在终端
Windows 10
react-native-cli: 2.0.1
react-native: 0.42.0
但我看到没有 React Native in-app Developer菜单
我正在跑步:
index.android.js
我的import { AppRegistry } from 'react-native';
import Welcome from './src/modules/onboarding/components/welcome';
AppRegistry.registerComponent('mobileapp', () => Welcome);
文件如下所示:
File prefFile = new File("/data/data/"+getPackageName()+"/shared_prefs/"+getPackageName()
+"_preferences.xml");
System.out.println(prefFile.toString());
if(prefFile.exists()) {
System.out.println("Found Preference File");
final SharedPreferences pref = new SecurePreferences(getApplicationContext());
Map<String, String> authParams = new HashMap<String, String>();
authParams.put("key", pref.getString("key",""));
authParams.put("action", "validate");
System.out.println("now authenticating");
JsonObjectRequest authRequest = new JsonObjectRequest(Request.Method.POST, AUTH_URL,
new JSONObject(authParams), new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
/* Intent intent = new Intent(LaunchScreen.this, BaseActivity.class);
startActivity(intent); */
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
NetworkResponse response = error.networkResponse;
System.out.println(response.toString());
System.out.println(error.getMessage());
error.printStackTrace();
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = new HashMap<String, String>();
headers.put("Accept", "application/json");
headers.put("Authorization", "Token " + pref.getString("key",""));
return headers;
}
@Override
public String getBodyContentType() {
return "application/json";
}
};
System.out.println("adding to queue");
Volley.newRequestQueue(getApplicationContext()).add(authRequest);
} else {
System.out.println("Opening Login Activity");
Intent intent = new Intent(this, LoginActivity.class);
startActivity(intent);
}
答案 0 :(得分:11)
要在不直接访问硬件或点击事件的情况下使用Android设备或模拟器,您可以通过adb
将输入传递给设备
按adb shell input keyevent
,event_code
或string
将被发送到设备。
更多信息见Android Debug Bridge或ADB shell input
要打开菜单控件,请使用adb shell input keyevent 82
命令。
如果您需要更多相关信息,请与我们联系。
此致 杜尔加