我一直在使用这个插件https://github.com/dpa99c/cordova-diagnostic-plugin已经很长时间了。 现在我正在使用framework7,这太棒了。 我有这个代码要求相机许可,这很好用
onDeviceReady: function() {
cordova.plugins.diagnostic.requestCameraAuthorization(
function(status){
console.log("Authorization request for camera use was " + (status == cordova.plugins.diagnostic.permissionStatus.GRANTED ? "granted" : "denied"));
if (myApp.device.ios) {
cordova.plugins.diagnostic.isCameraRollAuthorized(function(authorized){
if (!authorized) {
cordova.plugins.diagnostic.requestCameraRollAuthorization(function(granted){
}, function(error){
console.log("Authorization request for camera roll has error " + error.code + " - "+ err.msg);
});
}
});
}
}, function(error){
console.error("The following error occurred: "+error);
}, false
);
但在允许相机拍照后,我的应用程序保持冻结,我可以在输入框上书写,但是当我点击任何按钮/链接时没有任何反应。我没有控制台错误,只在iOS上发生。 如果您重新启动应用程序,一切正常。 我也尝试添加这个插件:
<gap:plugin name="cordova-plugin-ios-camera-permissions" source="npm" >
<variable name="CAMERA_USAGE_DESCRIPTION" value="La aplicacion requiere el permiso para tomar fotografias." />
<variable name="PHOTOLIBRARY_USAGE_DESCRIPTION" value="La aplicacion requiere el permiso para acceder a la lista de fotografias." />
</gap:plugin>
答案 0 :(得分:1)
如果您重新启动应用,一切正常
这听起来像是iOS 10上CSP权限不足导致问题的可能症状。有关详细信息和完整答案,请参阅this question,但简而言之,请确保您的Content-Security-Policy
元标记包含gap://ready
和file
,例如:
<meta http-equiv="Content-Security-Policy" content="default-src * gap://ready file:; style-src fonts.googleapis.com 'self' 'unsafe-inline'; img-src framework7.io 'self' data:; script-src * 'unsafe-inline' 'unsafe-eval'">