Yerleştirilmiş web'i kullanarak uygulama içi gezinme

Uygulama içi tarayıcılar, kullanıcılarınıza uygulamanızdan ayrılmalarına gerek kalmadan tam bir web deneyimi sunar. Android, uygulama içi tarayıcıları uygulamak için iki temel API sunar: Özel Sekmeler ve Web Görünümleri. Bir web sayfasına yönlendiren bağlantınız veya reklamınız varsa uygulama içi tarayıcı kullanın. Şekil 1'de gösterildiği gibi, bu sayfayı doğrudan uygulamanızın içinde açabilirsiniz.

Kırmızı kutu içinde uygulama içi bağlantı ve özel sekmeyle açılan bağlantıyı gösteren başka bir ekranı işaret eden ok.
Şekil 1. Uygulama içi bağlantıyı tıklama (sol) ve Özel Sekme kullanarak uygulama içi tarayıcı açma (sağ).

Özel Sekmeler ile Web Görünümleri arasında seçim yapmak, geliştirme hızınızı, kullanıcı deneyiminizi ve kullanıcı arayüzü üzerindeki kontrolünüzü etkileyen önemli bir mimari karardır.

Hızlı karşılaştırma

İhtiyaçlarınıza uygun aracı belirlemek için aşağıdaki tablodan yararlanabilirsiniz:

Özellik WebView Özel Sekmeler
Birincil kullanım alanı Birincil veya destekleyici içerik olarak web'i kullanan, görüntülü reklamlar, uygulama kampanyaları veya hizmet şartları sayfaları gösteren hibrit uygulamalar oluşturma Harici web sitelerinden içerik (ör. haber makaleleri veya ürün sayfaları) gösterme
Kullanıcı arayüzü kontrolü Tam. Bu, istediğiniz yere yerleştirebileceğiniz bir View bileşenidir. Çevreleyen tüm kullanıcı arayüzünü siz kontrol edersiniz. Sınırlı. Araç çubuğu rengini temalandırabilir ve birkaç özel işlem ekleyebilirsiniz.
Veriler ve oturumlar Korumalı alana alınmış. Kullanıcının ana tarayıcısıyla çerezleri veya girişleri paylaşmaz. Paylaşıldı. Çerezler ve kayıtlı şifreler de dahil olmak üzere kullanıcının varsayılan tarayıcı oturumunu kullanır.
Yerel <-> Web köprüsü Evet. Web içeriği ile yerel uygulama kodu arasında derin, çift yönlü iletişim için JavaScript köprüsü kullanabilirsiniz. Sınırlı. Temel dize aktarımı için window.postMessage() yöntemini kullanabilirsiniz.
Geliştirici çalışması Yüksek. Yaşam döngüsünü, gezinmeyi ve performansı kendiniz yönetmeniz gerekir. Düşük. Yalnızca birkaç satır kodla uygulayabilirsiniz.

WebView

WebView, web sayfalarını uygulamanızın düzeninin ayrılmaz bir parçası haline getiren bir görünümdür. Güçlü bir araç olsa da Özel Sekmeler'e kıyasla kullanımı biraz daha karmaşıktır.

WebView, uzak veya yerel web içeriği yükleyebilir, JavaScript çalıştırabilir ve web içeriğiniz ile yerel uygulama kodunuz arasında çift yönlü iletişim sağlayabilir. Özellikleri hakkında daha fazla bilgi edinmek için WebView'un yapabilecekleri başlıklı makaleyi inceleyin.

WebView'u, uygulamanızın bir parçası olarak bir web uygulaması sunmak veya online bir web sayfasını görüntülemek için de kullanabilirsiniz. Örneğin, düzenli olarak güncellemeniz gereken bir son kullanıcı sözleşmesi. Daha fazla bilgi edinmek için WebView'da web uygulamaları oluşturma başlıklı makaleyi inceleyin.

Neden WebView'u seçmelisiniz?

WebView'un uygun olduğu bazı senaryolar şunlardır:

  • Karma uygulamalar: Web içeriği ile yerel bileşenlerin (gezinme çubuğu veya kayan işlem düğmesi gibi) yan yana bulunduğu bir uygulama geliştiriyorsunuz.
  • Birinci taraf içerik: Web içeriğiniz, uygulama deneyiminin temel ve etkileşimli bir parçasıdır (ör. doküman düzenleyici veya tasarım tuvali).
  • Tam kullanıcı arayüzü kontrolü: Web sayfasının içeriğini değiştirmeniz veya sayfanın üzerine yerel kullanıcı arayüzü öğeleri yerleştirmeniz gerekir.
  • Derinlemesine analiz: Web görünümündeki kullanıcı etkileşimi ve etkinliği hakkında ayrıntılı bilgiye ihtiyacınız varsa.

Önemli avantajlar ve dezavantajlar

WebView kullanırken göz önünde bulundurmanız gereken bazı önemli noktalar şunlardır:

  • Performans: WebView, bellek kullanımını artırabilir. Dikkatli bir şekilde yönetmezseniz performans sorunları veya ANR'lerle (Uygulama Yanıt Vermiyor hataları) karşılaşabilirsiniz.
  • Güvenlik ve bakım: Güvenliği güçlendirmekten ve yaşam döngüsünü yönetmekten siz sorumlusunuz. Buna, WebViewCompat.saveState() kullanarak işlem yeniden oluşturma sırasında durum korumasını yönetmek ve Android'in 1 MB'lık kaydedilmiş durum işlem sınırını aşmamak dahildir. Ancak WebView güncellemeleri Google Play üzerinden dünya genelinde yayınlandığından, temel motorun güncelliğini yitirmesi konusunda endişelenmeniz gerekmez.

Özel Sekmeler

Özel Sekmeler, kullanıcıları harici URL'lere yönlendirmek için mükemmel bir seçenektir. Uygulamanızın üzerinde kayan hızlı, güvenli ve kullanıcı dostu bir tarayıcı penceresi sunar.

Neden Özel Sekmeler'i seçmelisiniz?

Özel sekmelerin uygun olduğu bazı senaryolar şunlardır:

  • Harici bağlantılar: Kullanıcı, sahibi olmadığınız bir web sitesinin bağlantısına dokunduğunda özel sekmeler, tam kapsamlı tarayıcı deneyimi sunarken kullanıcıyı uygulamanızın bağlamında tutar.
  • Entegrasyon kolaylığı: Yerleşik web deneyimini kullanmaya başlamanın en basit yoludur.
  • Paylaşılan durum: Çerezleri kullanıcının varsayılan tarayıcısıyla paylaştığı için kullanıcıların daha önce ziyaret ettikleri sitelerde tekrar oturum açmaları gerekmez.
  • Üçüncü taraf oturum açma: Tarayıcı, kimlik bilgilerini güvenli bir şekilde işlediğinden üçüncü taraf oturum açma akışları (ör. "Google ile oturum aç" veya "Facebook ile oturum aç") için uygundur.

Çoğu tarayıcı Özel Sekmeler'i desteklese de bazıları diğerlerinden daha fazla özelleştirme seçeneği sunar. Daha fazla bilgi için Tarayıcı desteği bölümüne bakın.

Jetpack Compose'da web içeriği kullanma

Jetpack Compose ile uygulama geliştirirken hem Özel Sekmeler'i hem de WebView'u kullanabilirsiniz:

  • Özel Sekmeler: Özel Sekmeler Intent kullandığından bunları Oluşturma işlevlerinizdeki herhangi bir Context'ten başlatarak sorunsuz bir entegrasyon sağlayabilirsiniz.
  • WebView: Compose'da henüz yerel bir WebView bileşeni olmadığından standart bir WebView'u düzeninize yerleştirmek için AndroidView kullanmanız gerekir.

Ek kaynaklar

WebView veya Özel Sekmeler API'lerini kullanarak Android destekli cihazlar için web sayfaları geliştirmek istiyorsanız aşağıdaki belgelere bakın: