Android platformu on yılı aşkın bir süredir var ve ilk günlerinden beri Web için büyük destek aldı. Geliştiricilerin web’i kendi Android Uygulamalarında kullanmalarına izin veren bir bileşen olan WebView ile birlikte gelir. Bundan daha fazlası, Android, geliştiricilerin kendi tarayıcı motorlarını platforma getirmelerine izin vererek rekabeti ve yeniliği teşvik eder.
Geliştiriciler, web’i Android uygulamalarına birçok şekilde dahil edebilir. WebView, Android UI öğeleriyle birlikte kullanılan bir düzen bileşeni olarak veya HTML 5 oyunlarını paketlemek için sıklıkla reklamları oluşturmak için kullanılır. Özel Sekmeler, geliştiricilerin uygulama içi tarayıcılar oluşturmasına ve üçüncü taraf web içeriğine sorunsuz bir gezinme deneyimi sağlamasına olanak tanır ve Güvenilir Web Etkinliği, geliştiricilerin Play Store’dan indirilebilen Android uygulamalarında Progresif Web Uygulamalarını (PWA’lar) kullanmalarına olanak tanır.
Android Web Görünümü #
WebView, geliştiricilere Android uygulamalarında modern HTML, CSS ve JavaScript’e erişim sağlar ve içeriğin APK içinde gönderilmesine veya internette barındırılmasına olanak tanır. Web içeriğinin bir Android uygulamasına dahil olduğu çoğu kullanım durumu için kullanılabilen, Android’in en esnek ve güçlü bileşenlerinden biridir. AdMob gibi reklam hizmetlerini güçlendirmekten WebGL gibi modern API’leri kullanan eksiksiz HTML5 oyunları oluşturmaya ve göndermeye kadar.
Ancak, bir uygulama içi tarayıcı oluşturmak için kullanıldığında veya bir Android uygulamasına bir PWA eklemek için kullanıldığında WebView, web platformunun güvenliğinden, özelliklerinden ve yeteneklerinden yoksundur.
Uygulama içi tarayıcı mücadelesi #
Zamanla, giderek daha fazla sayıda geliştirici, üçüncü taraf web sitelerinde gezinirken kullanıcıları için daha sorunsuz bir deneyim yaratmak amacıyla üçüncü taraf içeriğini Android uygulamalarına dahil eden tarayıcı deneyimleri oluşturdu. Bu deneyimler, uygulama içi tarayıcılar olarak bilinmeye başlandı.
WebView, modern web teknolojisi yığını için kapsamlı desteğe sahiptir ve WebGL gibi birçok modern web API’sini destekler. Ancak WebView, öncelikle bir web kullanıcı arayüzü araç takımıdır. BT web platformunun tüm özelliklerini desteklemez ve desteklemez. Bir API’nin zaten Web Bluetooth gibi işletim sistemi düzeyinde bir alternatifi varsa veya push bildirimleri gibi tarayıcı kullanıcı arayüzünün uygulanmasını gerektiriyorsa desteklenmeyebilir. Web platformu geliştikçe ve yalnızca Android uygulamalarında kullanılabilen daha fazla özellik ekledikçe, bu boşluk daha da büyüyecektir. Uygulama geliştiricileri, üçüncü taraf içeriği açarken hangi özelliklerin kullanıldığını kontrol etmediğinden, WebView’ü uygulama içi tarayıcılar veya Progresif Web Uygulamalarını açmak için kötü bir seçim haline getirir. WebView, tüm web platformu özellikleri için destek sağlasa bile, geliştiricilerin yine de izinler veya push bildirimleri gibi işlevler için kod yazmaları ve kendi kullanıcı arayüzlerini uygulamaları gerekecek ve bu da kullanıcılar için tutarlılık sağlamayı zorlaştıracaktır.
WebView’u uygulama içi tarayıcı olarak kullanmak için Güvenlik Hususları #
WebView, yerleştirme uygulamasına tanımlama bilgileri ve DOM dahil olmak üzere işlenmiş içeriğe tam erişim sağlar. Bunlar, kullanıcılardan yüksek düzeyde güven gerektiren güçlü özelliklerdir.
WebView, tarayıcı oluşturmak için bir çerçeve olarak tasarlanmadığından, modern tarayıcılarda bulunan güvenlik özelliklerinden yoksundur.
Çok işlemli mimari ve site izolasyonu #
Tarayıcılar, güvenilmeyen içeriği işlerken ve yürütürken güvenli olacak şekilde tasarlanmıştır. Potansiyel olarak güvenilmez ve hatta kötü amaçlı içerikte gezinirken kullanıcının güvende kalmasını sağlamak için, modern tarayıcılar aşağıdaki gibi teknikler kullanır: çoklu işlem mimarisi Ve site izolasyonu.
Çok işlemli mimari olmadan, web sayfasının neden olduğu bir çökme tüm tarayıcı uygulamasını çökertebilir veya tüm cihazın kontrolünü ele geçirmek için bir güvenlik açığından yararlanılabilir. Site izolasyonu, güvenilmeyen sitelerin diğer sitelere erişmesini ve bu sitelerden bilgi çalmasını zorlaştıran başka bir güvenlik katmanı ekler.
Android 8.0 Oreo’ya kadar WebView oluşturucu, embedder uygulamasıyla aynı işlemi kullanıyordu. İşletim sisteminin daha yeni sürümlerinde ve aygıtlar yeterince yetenekli olduğunda oluşturucu farklı bir işlemde çalışır. Ancak, tüm sayfalar ve bunları çalıştıran WebView örnekleri arasında hala tek bir işlem paylaşılıyor ve bu da site izolasyonunun tam olarak uygulanmasını imkansız hale getiriyor.
Çok işlemli bir mimarinin ve site yalıtımının olmaması, sahip oldukları ve güvendikleri içeriği işleyen uygulamalar için bir sorun değildir, ancak uygulama içi tarayıcılar gibi güvenilmeyen üçüncü taraf içeriği çalıştıran uygulamalar için bir sorun olabilir ve kullanıcıları aşağıdakiler gibi güvenlik açıklarına maruz bırakır: Erime Ve Hayaletçerezleri, banka bilgilerini, kişisel bilgileri ve daha fazlasını çalmak için kullanılabilir.
Güvenli UI Göstergeleri #
Kullanıcılara iyi güvenlik göstergeleri sağlamak da önemlidir ve tarayıcılar çok çaba sarf eder ve her zaman gelişen Bu bölgede. Ancak WebView, bir sitenin bağlantısının güvenli olup olmadığını kontrol etmek için uygulama geliştiricilerin güvenilir güvenlik göstergeleri oluşturmasına olanak tanıyan bir API’den yoksundur. Böyle bir API’nin olmaması, örneğin, adres çubuğunda görüntülenen bir URL’nin, güvenli HTTPS bağlantıları üzerinden bile kullanıcıya gösterilen sayfayla eşleşmemesine neden olabilir.
Geliştiricilerin kullanabileceği başka bir seçenek de uygulamalarına bir tarayıcı motoru yerleştirmektir. Artan uygulama boyutuna yol açmasının yanı sıra, bu yaklaşım hem karmaşık hem de zaman alıcıdır.
Uygulama içi tarayıcılar için bir çözüm olarak Özel Sekmeler #
Özel Sekmeler (önceki değeri) Chrome 45’te tanıtıldı ve geliştiricilerin, uygulamalarının bir parçası olarak kullanıcının varsayılan tarayıcısından bir sekme kullanmasına izin verir. Özel Sekmeler ilk olarak Chrome tarafından başlatıldı ve bu nedenle “Chrome Özel Sekmeler” olarak biliniyordu. bugün bir Android API’sı ve en popüler tarayıcılar Chrome, Firefox, Edge ve Samsung Internet dahil olmak üzere Özel Sekmeleri destekler, bu nedenle buna “Özel Sekmeler” demek daha uygundur.
Özel Sekmeler, geliştiricilerin web içeriğini uygulama deneyimlerine sorunsuz bir şekilde entegre etmelerine yardımcı olur. Ayrıca, geliştiricilerin araç çubuğu rengini, işlem düğmelerini, geçiş animasyonunu ve daha fazlasını özelleştirmelerine izin vererek web içeriğinin gösterildiği etkinliği özelleştirmelerine olanak tanır.
Ayrıca, daha önce WebView kullanırken veya bir tarayıcı motoru yerleştirirken kullanılamayan özellikler sunarlar. Uygulama içi tarayıcı, kullanıcının tarayıcısı tarafından desteklendiğinden, Özel Sekmeler depolamayı tarayıcıyla paylaşır, böylece kullanıcıların, yüklü uygulamalarından biri Uygulama İçi göz atma oturumu başlattığında favori web sitelerinde yeniden oturum açmaları gerekmez.
Web Görünümlerinden farklı olarak, Özel Sekmeler, onu çalıştıran tarayıcı tarafından desteklenen tüm web platformu özelliklerini ve API’leri destekler.
Güvenilir Web Etkinliğini Kullanarak Progresif Web Uygulamalarını Açın #
Aşamalı Web Uygulamaları, bir zamanlar yalnızca platforma özgü uygulamalarda kullanılabilen birçok davranışı ve yeteneği web’e taşır. Uygulama benzeri davranışın kullanıma sunulmasıyla, geliştiricilerin bu deneyimleri Android’de yeniden kullanma isteği arttı ve geliştiriciler, PWA’ları uygulamalarına entegre etmenin yollarını aramaya başladı.
Özel Sekmeler, tüm modern web yeteneklerini ve API’leri destekler, ancak öncelikle üçüncü taraf içeriğini açmak için tasarlandığından, üstte kullanıcılara hangi URL’yi ziyaret ettiklerini söyleyen bir araç çubuğu ve sitenin güvenli olup olmadığını gösteren kilit simgesi vardır. Bir uygulamanın kendi deneyimini açarken araç çubuğu, uygulamanın işletim sistemiyle entegreymiş gibi hissetmesini engeller.
Güvenilir Web Etkinlikleri Chrome 72’de tanıtıldı ve geliştiricilerin PWA’larını bir Android uygulamasında kullanmalarına izin verdi. Protokolü, Özel Sekmeler protokolüne benzer, ancak geliştiricilerin (üzerinden) doğrulama yapmasına izin veren API’ler sunar. Dijital Varlık Bağlantıları) hem Android uygulamasını hem de açılan URL’yi kontrol ettiklerini ve her ikisi de doğru olduğunda URL çubuğunu kaldırdıklarını.
Ayrıca, PWA’yı açarken veya Android koduyla işlenecek web bildirimlerini devrederken açılış ekranları oluşturmak için API’leri tanıttılar. Play Faturalandırma desteği gibi daha fazla özellik yakında kullanıma sunulacaktır.
Güvenilir Web Etkinlikleri’nde açılan URL’lerin PWA’lar olması ve bir dizi davranış ve performans özelliğine sahip olması beklendiğinden, Güvenilir Web Etkinlikleri kendi içinde açılan PWA’lar için kalite kriterleri getirir.
Mevcut çözümlerin sınırlamaları #
Geliştirici geri bildirimi, örneğin DOM’a erişebilmeleri veya uygulama içi tarayıcılarına JavaScript ekleyebilmeleri için Özel Sekmelerin platform uyumluluğu ile WebView’in esnekliğinin birleştirilmesi gerektiğini gösterdi.
Özel Sekmeler, kullanıcının tarayıcısı tarafından özel bir kullanıcı arayüzüyle veya hiç kullanıcı arayüzü olmadan oluşturulan etkili bir sekmedir. Bu, tarayıcının, kullanıcının tarayıcıya yönelik gizlilik ve güvenlik konusundaki beklentilerini karşılaması gerektiği anlamına gelir ve bu özelliklerden bazılarını imkansız hale getirir.
Google’daki Web on Android ekibi, bu kullanım örneklerini çözmek için alternatifler araştırıyor ve çözümler deniyor. Detaylar için takipte kalın!
Özet #
WebView, bir uygulamanın Android uygulaması içinde HTML, CSS ve JavaScript’e ihtiyaç duyması, ancak Push Bildirimleri, Web Bluetooth ve diğerleri gibi modern web’de bulunan daha gelişmiş özellikleri ve yetenekleri kullanmaması durumunda kullanışlıdır. Geliştiricinin amaçladığı şekilde görüntülenmeyebileceğinden, modern web platformu için tasarlanmış içeriği açarken önerilmez. Uygulama içi tarayıcılar oluşturmak için WebView önerilmez. Öte yandan, birinci taraf web içeriğini görüntülemek, Web Görünümlerinin gerçekten parladığı bir alandır.
Güvenilir Web Etkinliği, geliştiriciler kendi Progresif Web Uygulamalarını Android uygulamaları içinde tam ekran olarak oluşturmak istediklerinde kullanılmalıdır. Uygulamadaki tek etkinlik olarak kullanılabilir veya diğer Android etkinlikleriyle birlikte kullanılabilir.
Özel Sekmeler, uygulama içi tarayıcılar olarak da bilinen web platformu için tasarlanmış üçüncü taraf içeriğini açmak için önerilen yoldur.