W najnowszej wersji Chrome na iOS zastanawiałem się, jak włączyć zdalne debugowanie w Chrome na iOS?
Aktualizacja: Wraz z wydaniem iOS 6 można teraz zdalnie debugować za pomocą Safari .
W najnowszej wersji Chrome na iOS zastanawiałem się, jak włączyć zdalne debugowanie w Chrome na iOS?
Aktualizacja: Wraz z wydaniem iOS 6 można teraz zdalnie debugować za pomocą Safari .
Odpowiedzi:
Aktualizacja:
To nie jest już najlepsza odpowiedź, proszę postępuj zgodnie z radami Gregera .
Nowa odpowiedź:
Użyj Weinre .
Stara odpowiedź:
Możesz teraz używać Safari do zdalnego debugowania. Ale wymaga iOS 6.
Oto szybkie tłumaczenie http://html5-mobile.de/blog/ios6-remote-debugging-web-inspector
Jak wskazał Simons, należy wyłączyć prywatne przeglądanie, aby zdalne debugowanie działało.
Ustawienia> Safari> Przeglądanie prywatne> WYŁ
Wybrana odpowiedź dotyczy tylko Safari. W tej chwili nie jest możliwe rzeczywiste zdalne debugowanie w Chrome na iOS, ale podobnie jak w większości przeglądarek mobilnych możesz użyć WeInRe do prostych debugowania. Konfiguracja jest trochę pracochłonna, ale pozwala sprawdzić DOM, zobaczyć stylizację, zmienić DOM i grać z konsolą.
Ustawić:
npm install -g weinre
weinre --boundHost -all-
Bookmarklet jest nieco trudniejszy do zainstalowania. Najłatwiej jest, jeśli masz włączoną synchronizację zakładek w Chrome na komputery i urządzenia mobilne. Skopiuj adres URL bookmarkletu z lokalnego serwera weinre (tak samo jak powyżej). Niestety nie działa, ponieważ nie jest poprawnie zakodowany. Otwórz konsolę JavaScript i wpisz:
copy(encodeURI('')); // paste bookmarklet inside quotes
Powinieneś teraz mieć w schowku zakodowany bookmarklet. Wklej go do nowej zakładki w zakładkach mobilnych . Nazwij to weinre lub coś prostego do wpisania. Powinien być zsynchronizowany z telefonem komórkowym dość szybko, więc załaduj stronę, którą chcesz sprawdzić. Następnie wpisz nazwę zakładki na pasku adresu i powinieneś zobaczyć bookmarklet jako sugestię automatycznego uzupełniania. Kliknij, aby uruchomić kod bookmarkletu :)
Ctrl-Shift-B
jeśli nie jest widoczny).
npm install -g weinre
nie działało dla mnie. Musiałem więc uruchomić go z wersją npm install -g weinre@2.0.0-pre-I0Z7U9OV
. sprawdź najnowszą wersję tutaj npmjs.com/package/weinre .
Obecnie nie można bezpośrednio zdalnie debugować Chrome na iOS. Wykorzystuje uiWebView, który może działać nieco inaczej niż Mobile Safari.
Masz kilka opcji.
Opcja 1: Zdalne debugowanie mobilnego Safari przy użyciu inspektora Safari. Jeśli problem pojawi się w Mobile Safari, jest to zdecydowanie najlepsza droga. W rzeczywistości przejście przez symulator iOS jest jeszcze łatwiejsze.
Opcja 2: skorzystaj z Weinre, aby uzyskać uproszczone funkcje debugowania . Weinre nie ma wielu funkcji, ale czasem jest wystarczająco dobry.
Opcja 3: Zdalny debugowanie odpowiedniego interfejsu uiWebView, który działa tak samo.
Oto najlepszy sposób, aby to zrobić. Musisz zainstalować XCode .
urlString
na adres URL, który chcesz przetestować.Z mojego zrozumienia, Google Chrome wykorzystuje UIWebView dla iOS, a nie pełną implementację Chrome, podobnie jak odpowiednik Androida.
Wiele zdalnych konsol działa dobrze. http://farjs.com to mój projekt i udało mi się z powodzeniem debugować problemy specyficzne dla Crome iOS i nie zdarzające się podczas safari z jego użyciem. (i prawdopodobnie wszystkie inne przeglądarki mobilne)
Problem polega na tym, że wstrzyknięcie kodu debugującego jest nieco trudne, ponieważ Chrome nie pozwala na instalowanie skryptozakładek.
Zamiast tego możesz otworzyć jedną kartę na stronie, którą chcesz debugować, a drugą na farjs.com, a następnie kliknąć „bookmarklet”
Skopiuj kod JS bookmarkletu, wróć do pierwszej karty ze stroną, którą należy debugować, i wklej kod bookmarkletu na pasku lokalizacji.
Ostatnim krokiem jest przewinięcie do początku paska lokalizacji i dodanie „javascript:”, ponieważ Chrome go usunie.
Nie próbowałem tego, ale proxy debugowania WebKit na iOS (ios_webkit_debug_proxy / iwdp) podobno pozwala zdalnie debugować UIWebView. Z README.md
Ios_webkit_debug_proxy (alias iwdp) pozwala programistom sprawdzać MobileSafari i UIWebView na prawdziwych i symulowanych urządzeniach z iOS za pomocą interfejsu Chrome DevTools i protokołu zdalnego debugowania Chrome. Żądania DevTools są tłumaczone na wywołania usługi Remote Web Inspector firmy Apple.
Vorlon.JS może być używany do zdalnego debugowania systemu iOS lub dowolnego innego klienta.
npm i -g vorlon
vorlon
<script src="http://<yourExternalIP>:1337/vorlon.js"></script>
Zauważ, że tego podejścia można także użyć do debugowania aplikacji nie działających na localhost przy użyciu ngrok . Szczegółowe informacje można znaleźć na stronie https://stackoverflow.com/a/45443203/2073920 .
Zrzeczenie się
Jestem tylko użytkownikiem i nie jestem powiązany z Vorlon.JS i ngrok
Musisz także wyłączyć „Prywatne przeglądanie”.
Ustawienia> Safari> Przeglądanie prywatne> WYŁ
Nawet ja szukam tej samej funkcji, która na dzień dzisiejszy jest jeszcze zaimplementowana. Mogę jednak wymyślić dwie opcje,
Zauważyłem, że zachowanie Chrome i Safari jest dość identyczne; Chrome obsługuje nawet żyroskop i inne powiązane zdarzenia obsługiwane przez Safari. Obecnie debuguję moją aplikację internetową, włączając konsolę debugowania w Safari (poprzez Ustawienia-> Safari)
Wypróbuj również Adobe Shadow, który umożliwia zdalne debugowanie / inspekcję i synchronizację.
HTH.
Adobe Edge Inspect ( https://creative.adobe.com/products/inspect ) to kolejny sposób na debugowanie wszystkich urządzeń mobilnych z systemem iOS i Android (jednak bez Windows Phone). Wykorzystuje weinre do zdalnej kontroli / zmiany DOM. Nie jest to najszybsza metoda, ale działa w systemie Windows.
Chromium ma otwarty błąd: https://bugs.chromium.org/p/chromium/issues/detail?id=584905
Niestety zależy to od Apple, aby otworzyły interfejs API w WKView, po czym może się zdarzyć debugowanie w Safari.
Uwaga: Nie mam żadnego związku z twórcami Ghostlab Vanamco.
Ważne było dla mnie, aby móc debugować problemy związane z Chrome, więc postanowiłem znaleźć coś, co mogłoby mi w tym pomóc. Skończyło się na tym, że z radością rzuciłem pieniądze w Ghostlab 3 . Mogę testować przeglądarki mobilne Chrome i Safari tak, jakbym przeglądał je na komputerze. Daje mi tylko adres LAN do użycia z dowolnym urządzeniem, które chciałbym debugować. Każda aplikacja korzystająca z tego adresu pojawi się na liście w Ghostlab.
Wysoce rekomendowane.
Otwórz Safari Desktop iOS
Rozwijaj -> Tryb responsywnego projektowania
Kliknij „Inne” pod urządzeniem
Wklej to: Mozilla / 5.0 (iPad; CPU OS 10_2_1 jak Mac OS X) AppleWebKit / 602.1.50 (KHTML, jak Gecko) CriOS / 56.0.2924.79 Mobile / 14D27 Safari / 602.1
Użyj narzędzi inspekcji Safari.
Zastrzeżenie: Pracuję w BrowserStack. [Potwierdzono], czy mogę to opublikować ( czy mogę zasugerować produkt firmy, nad którym pracuję? )
Debuguj Safari na iOS (obecnie nie dla Chrome, czytaj dalej, aby uzyskać więcej informacji).
Jak to działa
Używanie DevTools z prawdziwymi telefonami
Najedź kursorem na elementy, edytuj HTML, CSS, tak jak działają devtoole przeglądarki na pulpicie.
Wykonywanie JavaScript w prawdziwym telefonie za pomocą DevTools
Przełącz na Console
zakładkę, uruchom kod JavaScript, sprawdź console.log()
dane wyjściowe i tak dalej ...
Karta Sieć, sprawdź nagłówki żądań, odpowiedzi i tak dalej ...
Obsługa DevTools w BrowserStack?
DevTools są dostępne na:
Przeglądarką klienta musi być Chrome lub Firefox. Oznacza to, że musisz używać przeglądarki Chrome lub Firefox na MacOSX lub Windows, aby korzystać z BrowserStack Real Device DevTools.
Uwaga: musisz kupić plan testowania na wszystkich rzeczywistych urządzeniach, jako darmowy użytkownik dostaniesz kilka urządzeń z systemem Android (w tym tablety) i kilka urządzeń z systemem iOS (w tym tablety). Ponadto, podkreślając słowo Real Devices, ponieważ zapewniają one również emulatory.
Więcej informacji na ten temat można znaleźć w sekcji DevTools na stronie Funkcje mobilne .