我正在爲我的科爾多瓦應用程序使用'imagepicker'插件從移動畫廊獲取圖像並使用它們。我正在測試我的應用程序在Android 6.0設備,這是問題,棉花糖Android 6.0需要在運行時權限不像舊版本「它正在舊版本」,但在API 23或更高時,它參加開放畫廊它立即關閉,應用程序崩潰。當我搜索時發現我需要許可才能做到這一點。所以我就開始使用「Android的權限科爾多瓦插件」,並通過複製他們在這個頁面提供的示例:https://www.npmjs.com/package/cordova-plugin-android-permissions科爾多瓦應用程序'Android權限科爾多瓦插件'沒有顯示權限對話框
是:
var permissions = cordova.plugins.permissions;
permissions.hasPermission(permissions.CAMERA, checkPermissionCallback, null);
function checkPermissionCallback(status) {
if(!status.hasPermission) {
var errorCallback = function() {
console.warn('Camera permission is not turned on');
}
permissions.requestPermission(
permissions.CAMERA,
function(status) {
if(!status.hasPermission) errorCallback();
},
errorCallback);
}
}
控制檯總是說:「攝像頭權限未打開」並沒有權限對話框顯示。
然後我再次搜查,發現該解決的問題,它`答案,所以我安裝了「科爾多瓦 - 插件診斷」,並試圖將此代碼:
function requestPermission(){
cordova.plugins.diagnostic.requestRuntimePermission(function(status){
switch(status){
case cordova.plugins.diagnostic.runtimePermissionStatus.GRANTED:
console.log("Permission granted (or already granted) - call the plugin");
// call SQLite plugin
break;
case cordova.plugins.diagnostic.runtimePermissionStatus.DENIED:
console.log("Permission denied - ask again");
alert("Come on user, we really need this. I'll ask again...");
requestPermission();
break;
case cordova.plugins.diagnostic.runtimePermissionStatus.DENIED_ALWAYS:
console.log("Permission permanently denied");
alert("Well that's it, we're dead Jim");
navigator.app.exitApp();
break;
}
}, function(error){
console.error("The following error occurred: "+error);
}, cordova.plugins.diagnostic.runtimePermission.READ_PHONE_STATE);
}
requestPermission();
應用程序關閉,沒有對話也表示,我想我不能得到這個插件應該做什麼,我如何獲得打開圖庫的權限。如果有人能給我完整的例子打開畫廊,並選擇權限的形象,這將是很大的幫助。
對不起,我的英語,感謝您的耐心等待。
試試這個,可能是工作stackoverflow.com/a/41221852/5488468 –
你嘗試完全卸載你的應用程序並重新安裝?這可能會清除以前被拒絕的權限,併爲您提供全新的開始。 – Alex