2016-05-10 24 views
5

Uygulamadaki her bağlantının, sistem sunucularının bir seçimi haricinde, sistemdeki harici tarayıcıda açılabilmesini istiyoruz.Apache Cordova izin-gözetimi izin-amaçlarına göre geçersiz kılındı ​​

<allow-navigation href="*.hostname.com/*"/>'u eklemeye çalıştık, ancak uygulamadaki diğer tüm bağlantılar için amaç etiketleri olarak <allow-intent href="http://*/*" /> and <allow-intent href="https://*/*"'u kullandığınızda bu durum geçersiz olur.

Beklenen sonuç, ana makine adlarımız uygulamanın içinde açılıyor, ancak bunun yerine harici tarayıcıda açılır.

Tüm yeni belgelere ve ağda bulunan yardımlara bakmayı denedim, ancak çözümüme bir yanıt bulamadı. Umarım biliyorsunuzdur.

Düzeltme: inappbrowser eklentisi ile en son cordova CLI ve en yeni beyaz liste eklentisini çalıştırdığımızı da unutmamak.

Saygılarımızla

,

Daniel

+0

Bu sorunu nereden görüyorsunuz? iOS'ta mı? android? her ikisi de? Cordova-ios 4.1.1'de bu düzeltilmelidir – jcesarmobile

+0

@Thrinaria bu bağlantıya bir göz atmanızı önerir - http://stackoverflow.com/questions/37127660/cordova-wrapper-app-where-internal-links-load- benzer bir sorunu ele alan uygulama içi-harici-bağlantılar-load-in-bro – Gandhi

+0

@jcesarmobile 6.1 hem android hem de ios. – Thrinaria

cevap

0

ben bunu elle yapmak gerekir düşünüyorum. Bunu elde etmek için inApp Browser eklentisini kullanabilirsiniz.

  1. Kontrol bağlantı iç/dış olduğunu harici görüşmesi sistemin tarayıcı ve açık dahiliyse bağlantıyı cordova.InAppBrowser.open('http://external-domain.name', '_system', 'location=yes');
  2. açarsanız
  3. (köprüyü kontrol ederek sizin ana makine adı içeren ya da değil içerir) Eğer gerekmiyorsa InAppBrowser cordova.InAppBrowser.open('http://yourdomain.name', '_blank', 'location=yes');

iç bağlantı sen 3 adım yok sayabilirsiniz.

Tam kodu:

$(document).on("click","a",function(e){   
     var hrefs = $(this).attr("href");   

     if(hrefs.indexOf("yourdomain") > -1) { 
      //Open link inside inAppBrowser 
      cordova.InAppBrowser.open(hrefs, '_blank', 'location=yes'); 
      e.preventDefault();//To prevent default click 
     } 
     else { 
      //Open link inside system browser 
      cordova.InAppBrowser.open(hrefs, '_system', 'location=yes'); 
      e.preventDefault();//To prevent default click 
     } 
}) 
1

bu şekilde <allow-*> etiketlerini değiştirmeyi deneyin:

<allow-intent href="*.hostname.com/*" 
<allow-navigation href="https://*/*" 
<allow-navigation href="http://*/*" 
<allow-access href="https://*/*" 
<allow-access href="http://*/*" 

<allow-navigation> etiket URL'si kendisine navigasyon olabilir Cordova web görüntülemesini kontrol etmek içindir. Cordova'nın Beyaz Listesi hakkında daha iyi bir anlayış için article numaralı telefona bakın.

+0

izin-erişim sadece olmalıdır.