2015-10-03 25 views
9

İlk jquery mobil uygulamasında, herkese açık Google takvimleri ve Amazon satış ortaklığı araçları gibi İnternet kaynaklarından veri gerektiren öğeler var ancak yalnızca chrome tarayıcımda veya üzerinde çalıştığım zaman çalışıyor html5 uygulama test cihazı ile Kindle Yangın cihazı. Eğer online Phonegap ile android sürümü apk oluşturursam, Kindle ve bir Lenovo cep telefonu gibi diğer android cihaz uygulamada İnternet bağlantısına ulaşamaz. Bu konudaki tüm konuları okudum ve config.xml dosyasında <access origin="*" subdomains="true" /> kullanımını önerdiğini ancak etkisiz olduğunu buldum. Ben de uygulamamız gibi kod parçacıkları koyun:Phonegap (çevrimiçi yapı) uygulaması - internet bağlantısı yok ve ağ durumu

if (navigator.onLine) { 
    $("#ifonline").append("Online"); 
} else { 
    $("#ifonline").append("offline"); 

} 

var isOffline = 'onLine' in navigator && !navigator.onLine; 

if (isOffline) { 
    $("#ifonline2").append("Status: offline"); 
} 
else { 
    $("#ifonline2").append("online"); 
} 

Ama sonuç bir şey değildir. Benim config.xml:

<?xml version="1.0" encoding="UTF-8" ?> 
    <widget xmlns = "http://www.w3.org/ns/widgets" 
     xmlns:gap = "http://phonegap.com/ns/1.0" 
     id   = "com.myapp.myapptodo" 
     versionCode = "10" 
     version  = "1.0.0" > 
    <name>myapp</name> 

    <description> 
     myapp is very good but can't find that &@ĐäĐ wifi! 
    </description> 

    <author href="https://mysite" email="mymail"> 
     Ceatos 
    </author> 

    <gap:plugin name="org.apache.cordova.network-information" /> 

    <feature name="http://api.phonegap.com/1.0/geolocation"/> 
    <feature name="http://api.phonegap.com/1.0/media"/> 
    <feature name="http://api.phonegap.com/1.0/network"/> 
    <feature name="http://api.phonegap.com/1.0/notification"/> 
    <feature name="InAppBrowser"> 
    <param name="android-package" value="org.apache.cordova.InAppBrowser"/> 
    </feature> 

    <feature name="NetworkStatus"> 
    <param name="android-package" value="org.apache.cordova.networkinformation.NetworkManager" /> 
</feature> 

    <access origin="*" subdomains="true" /> 

Çalışan bir wifi ağım var ve aygıtlar bağlı. Ne yapmalıyım?

cordova plugin add cordova-plugin-network-information 

Sizin AndoidManifest dosyası bu içermelidir: Bu şekilde eklentisi ağ durumunu eklemek zorunda yo kullanmak mümkün olduğu için

function checkConnection(){ 
      var networkState = navigator.connection.type; 
      if(Connection.NONE==networkState) 
       return "<p>No connection</p>"; 
} 

: İnternet bağlantınızı kontrol için

cevap

7

beyaz liste eklenti ekle

<gap:plugin name="cordova-plugin-whitelist" source="npm" /> 

Bunu tüm ilk

<allow-navigation href="http://*/*" /> 
<allow-intent href="https://*/*" /> 
+0

Teşekkür ederim. İleriye doğru küçük bir adım var.Çevrimiçi/çevrimiçi testler işe yarar, hiçbir şey yerine "çevrimiçi" yazıyorlar. Ancak internetten veri almak hala çalışmıyor (google takviminden, amazon'dan) sadece boş alanlar var. – Andras

+0

Yeni düzenleme ile deneyin – jcesarmobile

+0

Tüm önerilen ayarları config.xml dosyasına ve meta etiketine de (index.html) yazdım ve ilginç bir değişiklik oldu. "Çevrimiçi durum:" -test boş oldu (çevrimiçi veya çevrimdışı değil) ancak google takvim bağlantısı çalışmaya başladı. Ancak Amazon'un betiği değil. (index.html dosyasında gömülü kod detayı:

1

Bu fonksiyonu kullanmak iki satır:

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
+0

Cevabınız için teşekkür ederiz. İpuçlarını denedim ama hala aynı. <: Eklentisi name = "org.apache.cordova.network-bilgi"/boşluk> config.xml'de ve nerede index.html dizinde Yayınınızdan da iki satır içeren AndroidManifest.xml yarattı Ben olduğunu. Örneğiniz yerel telefongap yapısı içindir, ancak çevrimiçi yapı ile denedim. Görünüşe göre telefon konuşması yapıp uygulamayı yerel olarak yapılandıracağım. :( – Andras

+0

Bunu eklediniz mi: '' komutunu "config.xml" inizdeki gibi? – andre3wap

+0

Evet, yukarıya bakın – Andras

-1

this is the plugin derectory

olun config.xml bu iki satır başının

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src * 'unsafe-inline'; script-src * 'unsafe-inline'; media-src *"> 

bu meta etiketi eklemek Ve eklemeniz gerekebilir Eklentileri ekledim ben telefongap jan 2018 kendisi tarafından tüm eklentileri göndermez olduğunu fark ettim. whiteli gibi bazı eklentileri st ve splashsceen otomatik böylece eklenen aşağıdaki komutları kullanarak el ile eklemek değildir:

$ phonegap plugin add cordova-plugin-whitelist 
$ phonegap plugin add cordova-plugin-splashscreen 

PhoneGap uygulamasında çalışmıyor benim internet eklentisi ekledikten sonra çözüldü:

cordova-plugin-whitelist 

Devamı:

WhiteList-plugin, Whitelist-Guide

İlgili konular