【问题标题】:Framework7 + phonegap + ask camera permissionFramework7 + phonegap + 询问相机权限
【发布时间】:2017-05-24 12:02:26
【问题描述】:

我一直在使用这个插件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>

【问题讨论】:

    标签: cordova permissions camera cordova-plugins html-framework-7


    【解决方案1】:

    如果你重新启动应用程序,一切正常

    这听起来可能是由于 iOS 10 上 CSP 中的权限不足导致的问题的症状。有关详细信息和完整答案,请参阅this question,但简而言之,请确保您的 Content-Security-Policy 元标记包含 gap://readyfile,例如:

    <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'">
    

    【讨论】:

    • 这一行,给我带来了这些麻烦:拒绝加载样式表'fonts.googleapis.com/css?family=Roboto:300,400,500,700',因为它违反了以下内容安全策略指令:“style-src'self''unsafe-inline'”。拒绝加载样式表“fonts.googleapis.com/icon?family=Material+Icons”,因为它违反了以下内容安全策略指令:“style-src 'self''unsafe-inline'”。拒绝加载图像“framework7.io/i/logo-new.png”,因为它违反了以下内容安全策略指令:“img-src 'self' data:”。
    • iOS 10 现在严格应用 CSP 规则,因此在您获得正确的白名单之前,您的应用将无法正常运行。您需要在内容安全策略中将相应的域列入白名单以避免这些错误。我已经编辑了上面的示例 CSP 来说明您的特定错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-03
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    • 2021-04-26
    相关资源
    最近更新 更多