Chrome ile Android Intents

Uygulamaları Android Amacı ile doğrudan bir Android cihazdaki web sayfasından başlatabilirsiniz. Uygulamayı özel bir şemayla başlatmak için kullanıcı hareketini uygulayabilir veya intent: söz dizimini kullanabilirsiniz.

Kullanıcının uygulamayı başlatmayı seçebilmesi için bir amaç çapası oluşturun ve bunu bir sayfaya yerleştirin. Bu, uygulamaların nasıl ve ne zaman başlatılacağı konusunda esneklik sağlar. Böylece Intent Ekstraları ile uygulamaya bilgi iletebilirsiniz.

Amaca dayalı URI için temel söz dizimi aşağıdaki gibidir:

intent:  
   HOST/URI-path // Optional host  
   #Intent;  
      package=\[string\];  
      action=\[string\];  
      category=\[string\];  
      component=\[string\];  
      scheme=\[string\];  
   end;

Ayrıntıları ayrıştırma için Android kaynak koduna bakın.

Niyet çözümlenmediğinde veya harici bir uygulama başlatılmadığında, kullanıcı yedek URL'ye yönlendirilebilir. Intent Extra ile yedek URL belirtebilirsiniz:

S.browser_fallback_url=[encoded_full_url]

Intent Ekstralarını tanımlamak için S.<name> kullanın. Bu ekstra özellik geriye dönük uyumludur. Chrome, hedef uygulamanın bu değeri görmemesi için browser_fallback_url uzantısını kaldırır.

Chrome aşağıdaki durumlarda harici bir uygulamayı başlatmaz:

  • Amaç çözümlenemiyor. Diğer bir deyişle, hiçbir uygulama amacı işleyemez.
  • JavaScript zamanlayıcı, kullanıcı hareketi olmadan bir uygulamayı açmaya çalıştı.

Örnekler

Zxing barkod tarayıcı uygulamasını başlatan bir amacı burada görebilirsiniz:

intent:  
   //scan/  
   #Intent;  
      package=com.google.zxing.client.android;  
      scheme=zxing;  
   end;

Zxing barcode Scanner uygulamasını başlatmak için href öğenizi sabitleyiciye kodlayın:

  <a href="intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;end">
    Take a QR code
  </a>

Paketi ve ana makineyi tanımlayan Android Zxing Manifest'e bakın.

Yedek URL belirtildiğinde, tam URL şöyle görünür:

   <a href="intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;S.browser_fallback_url=http%3A%2F%2Fzxing.org;end">
    Take a QR code
  </a>

Uygulama bulunamazsa URL artık kullanıcıları zxing.org sitesine yönlendiriyor, bağlantı kullanıcı hareketi olmadan JavaScript tarafından veya harici bir uygulamayı başlatmadığımız diğer durumlarda tetikleniyor.

Dikkat edilmesi gereken noktalar

Bir Android Etkinliği'ni Ekstralar içeren bir Intent ile çağırırsanız bu ayrıntıları da ekleyebilirsiniz.

Bu yöntem kullanılarak yalnızca kategori filtresine (android.intent.category.BROWSABLE) sahip etkinlikler çağrılabilir. Bu durum, uygulamanın Tarayıcı'dan güvenle açılabileceğini gösterir.

Chrome, aşağıdaki durumlarda belirli bir Intent URI için harici uygulama başlatmaz:

  • Intent URI'sı, yazılmış bir URL'den yönlendirilir;
  • Intent URI'sı, kullanıcı hareketi olmadan başlatılır.