Android Nexus 5设备上的React Native Dev菜单

时间:2017-03-28 13:33:40

标签: android react-native windows-10 react-native-android nexus-5

我有一个基本的react-native应用,我在真正的Nexus 5 上运行,我找不到启用iOSreact-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);
    }

1 个答案:

答案 0 :(得分:11)

要在不直接访问硬件或点击事件的情况下使用Android设备或模拟器,您可以通过adb将输入传递给设备 按adb shell input keyeventevent_codestring将被发送到设备。

更多信息见Android Debug BridgeADB shell input

要打开菜单控件,请使用adb shell input keyevent 82命令。

如果您需要更多相关信息,请与我们联系。

此致 杜尔加