WebView için web içeriği geliştirirken, geliştirme makinenizdeki yerel bir web sunucusundan içerik sunmak faydalı olabilir. Bu yerel sunucuya bir test cihazındaki veya emülatördeki WebView'dan erişirseniz değişikliklerinizi uzak bir sunucuya dağıtmadan hızlıca görebilirsiniz. Bu sayfada, ana makinenizde çalışan bir web sunucusuna WebView'dan erişmenin çeşitli yolları açıklanmaktadır.
ADB ile ters bağlantı noktası yönlendirmeyi ayarlama
Ters bağlantı noktası yönlendirmeyi ayarlamak için cihazınızla iletişim kurmaya yönelik bir komut satırı aracı olan Android Debug Bridge'i (adb) kullanabilirsiniz. Bu özellik, cihazınızın veya emülatörünüzün geliştirme makinenizde localhost üzerinde çalışan bir web sunucusuna erişmesine olanak tanır.
adb, cihazdaki belirli bir bağlantı noktasındaki istekleri ana makinedeki farklı bir bağlantı noktasına yönlendirebilen bir reverse komutuna sahiptir.
Bu özelliği kullanmak için terminalinizde aşağıdaki komutu çalıştırın:
adb reverse tcp:DEVICE_PORT tcp:HOST_PORT
Aşağıdakileri değiştirin:
DEVICE_PORT: Uygulamanızın WebView'unun bağlandığı cihazdaki bağlantı noktası. Örneğin, 8080.HOST_PORT: Geliştirme makinenizde web sunucunuzun çalıştığı bağlantı noktası. Örneğin, 8080 veya 3000.
Örnek:
Yerel geliştirme sunucunuz geliştirme makinenizde localhost:8080 üzerinde çalışıyorsa aşağıdaki komutu çalıştırarak cihazınızdan gelen istekleri bu sunucuya yönlendirebilirsiniz:
adb reverse tcp:8080 tcp:8080
Bu komutu çalıştırdıktan sonra uygulamanızın WebView'ını cihazda veya emülatörde http://localhost:8080 adresine yönlendirebilirsiniz. WebView daha sonra geliştirme makinenizde localhost:8080 üzerinde çalışan web sunucusuna bağlanabilir. Bu yöntem, USB ile bağlanan fiziksel cihazlarla ve Android Emulator ile çalışır.
Chrome Geliştirici Araçları'nda bağlantı noktası yönlendirmeyi kullanma
Chrome Geliştirici Araçları'nın, cihazınızdaki istekleri geliştirme makinenize yönlendirmek için kullanabileceğiniz kendi bağlantı noktası yönlendirme özelliği vardır.
- Cihazınızı Chrome Geliştirici Araçları'nı kullanarak hata ayıklama bölümünde açıklandığı şekilde hata ayıklama için ayarlayın.
chrome://inspectsayfasında Bağlantı noktası yönlendirme... seçeneğini belirleyin.- Bağlantı noktası alanına, geliştirme makinenize erişmek için kullanmak istediğiniz Android cihazdaki bağlantı noktası numarasını girin.
- IP adresi ve bağlantı noktası alanına geliştirme makinenizin web sunucusu adresini ve bağlantı noktası numarasını girin.
- Bağlantı noktası yönlendirmeyi etkinleştir onay kutusunu işaretleyin.
- Bitti'yi seçin.
Örneğin, Bağlantı noktası alanına 3000, IP adresi ve bağlantı noktası alanına ise localhost:8000 girerseniz WebView'nizi http://localhost:3000'e yönlendirdiğinizde localhost:8000 üzerinde dinleme yapan geliştirme makinenizin web sunucusuna erişebilir.
Yerel web sunucunuz için özel bir alan adı da kullanabilirsiniz. Bu işlemi nasıl yapacağınızla ilgili talimatlar için Bağlantı noktası yönlendirme ile yerel sunuculara ve Chrome örneklerine erişme başlıklı makaleyi inceleyin.
Android Emulator'ın geçiş IP adresini kullanarak bağlanma
Android Emulator, uygulamanızdan geliştirme makinenize bağlanmak için özel geçiş IP adresi 10.0.2.2 sağlar. Bu yöntem, WebView'ınız bu IP adresini güvenli bağlam olarak değerlendirmeyeceğinden WebView hata ayıklama için önerilmez. Sonuç olarak, birçok web platformu özelliği (ör. Service Worker'lar, coğrafi konum, kamera ve mikrofon erişimi) web uygulamanızda kullanılamaz. Daha önce açıklanan adb reverse ve Chrome Geliştirici Araçları bağlantı noktası yönlendirme yöntemlerinde bu sorun yoktur. Çünkü bu yöntemler, WebView'ınızı güvenilir ana makine adı localhost'ya yönlendirmenize olanak tanır.