In Android Marshmallow è necessario concedere l'accesso a posizione, file, ecc. Separatamente nelle app. Esiste un problema nell'app PhoneGap che posso verificare se le autorizzazioni sono disponibili o meno e chiedere all'utente di fornire le autorizzazioni.Autorizzazioni app su Android Marshmallow in PhoneGap
risposta
AGGIORNAMENTO 16/02/2016
PhoneGap Costruire la società supports API 23 - hoooray!
Oppure se si costruisce localmente, solo Cordova/Phonegap CLI 6+ e si otterrà la piattaforma cordova-android @ 5 + per impostazione predefinita.
RISPOSTA ORIGINALE
Attualmente, questo è certamente possibile utilizzando il Cordova/PhoneGap CLI, ma Phonegap Build non supporta ancora API 23 (Android 6.0/Marshmallow).
In primo luogo, è necessario utilizzare v5.0.0 (o superiore) della piattaforma Android, che utilizza API 23.
A partire da oggi, la versione di default è 4.1.1 (che utilizza API 22), in modo da è necessario specificare in modo esplicito la versione quando si aggiunge la piattaforma:
cordova platform add [email protected]
phonegap platform add [email protected]
I plugin core stessi sono in procinto di essere aggiornato per supportare la richiesta di adeguate autorizzazioni di 6 runtime Android. Quindi dovrai installare le versioni "bleeding edge" direttamente dal ramo master dei repository GitHub, invece che tramite il registro del plugin npm. Ad esempio, utilizzare:
cordova plugin add https://github.com/apache/cordova-plugin-file
che dovrebbe ottenere la versione 4.0.1-dev.
Non la versione NPM:
cordova plugin add cordova-plugin-file
che vi porterà v3.0.0
Nota che le versioni sul master rami non sono uscite, quindi può contenere bug.
Quindi l'alternativa (che ho optato per), è di continuare a utilizzare le versioni di rilascio dei plugin (che non supportano ancora richieste di permessi di runtime Android), ma usare cordova-diagnostic-plugin per richiedere le autorizzazioni di runtime di Android che il il plug-in core corrispondente richiede prima di tentare di utilizzare l'API core plugin.
Ad esempio, per usare il plugin posizione, continuare a utilizzare la versione via NPM:
cordova plugin add cordova-plugin-geolocation
Ma prima di richiedere una posizione, in modo che il permesso di esecuzione è stata concessa con il plugin di diagnosi:
function requestLocation(){
navigator.geolocation.getCurrentPosition(onSuccess, onError, options);
}
cordova.plugins.diagnostic.getLocationAuthorizationStatus(function(status){
if(status == "GRANTED"){
requestLocation();
}else{
cordova.plugins.diagnostic.requestLocationAuthorization(function(status){
if(status == "GRANTED"){
requestLocation();
}else{
// Handle other cases
}
}, function(error){
console.error(error);
});
}
}, onError);
E 'possibile richiedere esplicitamente all'utente di attivare una specifica autorizzazione con i seguenti Cordova plugin: https://www.npmjs.com/package/cordova-plugin-android-permissions
Especia per i vecchi plugin questo può essere molto utile.
- 1. Android Marshmallow - modifica stato autorizzazioni
- 2. Sono tutte quelle autorizzazioni necessarie per PhoneGap su Android?
- 3. Autorizzazioni Android SU: come usarle?
- 4. Implementazione autorizzazione marshmallow
- 5. Test Marshmallow Android Permessi
- 6. Impossibile visualizzare le immagini Data-URI su App Android PhoneGap
- 7. Installazione di app phonegap su emulatore Android tramite Windows CLI
- 8. Marshmallow Le autorizzazioni non funzionano per TargetVersion inferiore a 23
- 9. Abilita posizioni simulate in Android Marshmallow
- 10. Android: attivazione/disattivazione dell'hotspot WiFi programmaticamente su Android Marshmallow (6.0)
- 11. Autorizzazioni Android per Android, config.xml e plug-in
- 12. Come trovare le autorizzazioni di runtime di Android Marshmallow richieste nel codice?
- 13. PhoneGap - Android - navigazione a scorrimento in PhoneGap
- 14. Errore PhoneGap su Android GetPTLAFormat
- 15. PhoneGap non in esecuzione su Android
- 16. Test dell'unità Robolectric Android per Marshmallow PermissionHelper
- 17. App Facebook: autorizzazioni aggiuntive
- 18. Autorizzazioni INTERNET in Android M
- 19. FIleObserver e ContentObserver non funziona in Android Marshmallow
- 20. Modifica comportamento SimpleDateFormat in Android Marshmallow
- 21. Test accessibilità su dispositivo emulato (Marshmallow)
- 22. org.apache.http.entity.FileEntity è obsoleto in Android 6 (Marshmallow)
- 23. Versione definitiva dell'esercitazione su PhoneGap per Android
- 24. Come concedere le autorizzazioni di sistema alla mia app Android?
- 25. Ingressi mascherati con PhoneGap su Android
- 26. Android 6 Marshmallow: le richieste di alcune autorizzazioni specifiche vengono immediatamente rifiutate senza l'interfaccia utente.
- 27. Applicazione PhoneGap creata con l'invio "PhoneGap Build" a App Store
- 28. PhoneGap iOS App Icon
- 29. Android Studio File Explorer non funziona su Marshmallow (dispositivi Nexus)
- 30. zoom in PhoneGap per Android
hai più ragione, ma invece di aggiungere il plugin da github, che come hai detto, installerà la versione -dev, dovrebbe installare l'ultima versione rilasciata usando '' 'cordova plugin aggiungi cordova-plugin-file @ 4.0.0 --save''' – jcesarmobile
@DaveAlden, grazie per la risposta –
Questo è stato davvero utile, grazie. – pushplaybang