Sto lavorando su un'app PhoneGap e ho un problema con l'installazione di un particolare modulo, "Informazioni di rete" (https://github.com/apache/cordova-plugin-network-information). phonegap -v
mostra che sto eseguendo la versione 5.3.7Problema con PhoneGap Informazioni sulla rete Plugin su iOS
Tutti gli altri plugin sembrano funzionare correttamente. Questo è un problema nell'applicazione su cui sto lavorando, ma sono anche riuscito a riprodurlo in una nuova applicazione: gli unici due file che ho modificato sono index.html e js/index.js in questo esempio, e lì è alcun file/js cordova.js, che è incluso automaticamente (Cordova Network and Camera API returns undefined)
ho creato l'applicazione utilizzando i seguenti comandi:
phonegap create ios-test
cd ios-test
phonegap cordova plugin add cordova-plugin-dialogs
phonegap cordova plugin add cordova-plugin-network-information
l'uscita del PhoneGap lista Cordova plugin è:
cordova-plugin-dialogs 1.1.1 "Notification"
cordova-plugin-network-information 1.0.1 "Network Information"
Sulla base di un suggerimento here L'ho spostato in una chiamata setTimeout(), ma non sembra fare la differenza.
Ecco il codice HTML (index.html):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="format-detection" content="telephone=no" />
<meta name="msapplication-tap-highlight" content="no" />
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
<link rel="stylesheet" type="text/css" href="css/index.css" />
<title>Hello World</title>
</head>
<body>
<div class="app">
</div>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/index.js"></script>
<script type="text/javascript">
app.initialize();
</script>
</body>
</html>
E il JS:
var app = {
initialize: function() {
this.bindEvents();
},
bindEvents: function() {
document.addEventListener('deviceready', this.onDeviceReady, false);
},
onDeviceReady: function() {
navigator.notification.alert('Test', null, 'Test', 'OK');
setTimeout(function() {
navigator.notification.alert('Debug', null, 'Checking connection', 'OK');
if (navigator.connection == undefined) {
navigator.notification.alert('navigator.connection is undefined', null, 'Error', 'OK');
return;
}
var networkState = navigator.connection.type;
var states = {};
states[Connection.UNKNOWN] = 'Unknown connection';
states[Connection.ETHERNET] = 'Ethernet connection';
states[Connection.WIFI] = 'WiFi connection';
states[Connection.CELL_2G] = 'Cell 2G connection';
states[Connection.CELL_3G] = 'Cell 3G connection';
states[Connection.CELL_4G] = 'Cell 4G connection';
states[Connection.CELL] = 'Cell generic connection';
states[Connection.NONE] = 'No network connection';
navigator.notification.alert('Network Status', null, 'Connection type: ' + states[networkState], 'OK');
}, 5000);
}
};
Al momento l'esecuzione del codice con phonegap serve
e l'applicazione dello sviluppatore sul mio iPhone, ho l'Debug avvisare quindi vedere "navigator.connection non è definito".
Ho anche cercato di costruire per iOS:
phonegap platform add ios
Adding ios project...
Running command: /Users/James/.cordova/lib/npm_cache/cordova-ios/3.9.2/package/bin/create /Web/ios-test/platforms/ios com.phonegap.helloworld "Hello World" --cli
iOS project created with [email protected]
Discovered plugin "cordova-plugin-whitelist" in config.xml. Installing to the project
Fetching plugin "[email protected]" via npm
Installing "cordova-plugin-whitelist" for ios
Installing "cordova-plugin-dialogs" for ios
Installing "cordova-plugin-network-information" for ios
Questo crea una cartella platforms/ios
, ma ho ancora lo stesso problema.
Ho anche provato:
Controllo ARC è abilitata, iOS8 phonegap cordova network-information app crashes
aggiunta dei seguenti per
config.xml
Check internet connection on iOS app with Cordova Phonegap 3.3.0 not working:
<feature name="NetworkStatus"> <param name="ios-package" value="CDVConnection" /> </feature>
- Utilizzando
navigator.network.connection.type
invece, Check internet connection on iOS app with Cordova Phonegap 3.3.0 not working - Controllo AudioToolbox.framework e SystemConfiguration.framework sono entrambi aggiunto: Cordova Network Plugin does not build on iOS
Grazie per la vostra risposta, è davvero utile! Con quanto segue, ho ancora 'network.connection is undefined': https://gist.github.com/jfi/14fcff97e8c3c98259aa –
Non faccio CLi, anche se dovrei. Sto usando * [PhoneGap Build] (https://build.phonegap.com/) *. Se non si ottiene l'accesso alla rete, se si utilizza iOS9, è necessario applicare 'CSP' e' ATS'. Il plug-in "whitelist' è stato rimosso a partire da pochi giorni fa. Non ho avuto il tempo di correggere questo post. [COME APPLICARE Cordova/PhoneGap al sistema di whitelist] (https://github.com/jessemonroy650/top-phonegap-mistakes/blob/master/the-whitelist-system.md). Ancora una volta, il plugin 'whitelist' non si applica più a iOS9,' CSP' e 'ATS' sono ancora validi. Best of Luck – JesseMonroy650
@JamesI, vedere i miei commenti al tuo post originale. Il tuo 'config.xml' ha dei problemi. – JesseMonroy650