On React-Native, как я могу узнать, включен ли "Debug JS Remotely"
?
Я попробовал посмотреть RN docs и различные пакеты NPM, но не смог узнать, как...
On React-Native, как я могу узнать, включен ли "Debug JS Remotely"
?
Я попробовал посмотреть RN docs и различные пакеты NPM, но не смог узнать, как...
Как программно проверить, включена ли удаленная отладка (только что нашел это своеобразное поведение сегодня по другому вопросу SO). Протестировано на RN 0,43 и с отладчиком Chrome + React Native Debugger:
const isDebuggingEnabled = (typeof atob !== 'undefined');
Изменить: только что заметил, что это было задано более полугода назад: D... ну, я оставляю его здесь для будущих поколений.
Класс DedicatedWorkerGlobalScope
существует, если включена удаленная отладка (в данном случае это конструктор глобального объекта). Таким образом, мы можем:
const haveRemoteDev = (typeof DedicatedWorkerGlobalScope) !== 'undefined';
Пробежал через этот ответ, но не был доволен проверкой на atob
или ограниченным для Android. Я нашел функцию, которая кажется довольно хорошим прокси-сервером, если работает отладчик, который называется глобальным __REMOTEDEV__
.
В моем случае я хотел видеть запросы, сделанные приложением в response-native-debugger, мой полный код выглядит следующим образом:
/**
* When the debugger is connected, remove the XHR polyfill
* so that the chrome inspector will be able to see requests
*/
if (typeof global.__REMOTEDEV__ !== 'undefined') {
const _XHR = GLOBAL.originalXMLHttpRequest ?
GLOBAL.originalXMLHttpRequest :
GLOBAL.XMLHttpRequest;
global.XMLHttpRequest = _XHR;
}
Проверьте __REMOTEDEV__
простым способом:
if(global.__REMOTEDEV__) { console.log('Remote Debug'); }
Для Android в общих настройках вы можете найти статус удаленной отладки. Когда я открываю файл sharedPreferences для своего приложения.
Удаленная отладка активна
<map>
<boolean name="remote_js_debug" value="true" />
<boolean name="hot_module_replacement" value="true" />
<boolean name="reload_on_js_change" value="true" />
</map>
Удаленная отладка неактивна
<map>
<boolean name="remote_js_debug" value="false" />
<boolean name="hot_module_replacement" value="true" />
<boolean name="reload_on_js_change" value="true" />
</map>
Итак (только для Android) вы можете использовать модуль, подобный этому: https://github.com/sriraman/react-native-shared-preferences, чтобы проверить, активна ли удаленная отладка.