Tizen-获取应用程序以请求权限

时间:2019-10-15 16:31:59

标签: tizen tizen-web-app tizen-wearable-sdk

所以我试图让我的Tizen应用程序检查并请求初始化许可,但是以下代码无法按预期工作

        var readPrivilege = "http://tizen.org/privilege/filesystem.read";

        function readRPSuccess(x){
            alert("Success" + JSON.stringify(x));
        }

        function readRPError(e){
            alert("error "+ JSON.stringify(e));
        }

        function readCHSuccess(){
        }

        function readCHError(){
            tizen.ppm.requestPermission(readPrivilege, readRPSuccess, readRPError);
        }

        tizen.ppm.checkPermission(readPrivilege, readCHSuccess, readCHError);

这段代码是在我的main.js文件的初始功能中。我从运行4.0.0.1的手表和运行3.0的模拟器中得到相同的结果。我的xml文件上所需的Tizen版本是2.3

结果:黑屏,没有内容。

预期:页面要求读取权限。

更新:因此,我安装了模板项目“ HeartRateMonitor”,在xml文件上将Tizen版本所需的版本更改为4,并添加了以下代码。请注意,该代码已安装在main.js的init函数上。这次,我将其更改为请求healthinfo权限,它按预期方式工作。当我将其更改为filesystem权限之一时,它将不起作用。

    function onSuccess() {
        alert("yay");
    }

    function onError() {
        alert("nay");
    }
    tizen.ppm.requestPermission("http://tizen.org/privilege/healthinfo",onSuccess, onError);

任何帮助将不胜感激。谢谢!

3 个答案:

答案 0 :(得分:1)

根据以下页面:https://developer.tizen.org/ko/development/training/web-application/understanding-tizen-programming/security-and-api-privileges filesystem.read不是隐私特权,因此不需要使用ppm。请参阅表格的“隐私”列。

答案 1 :(得分:1)

首先,由于checkPermission API的无效使用,您的代码无法执行任何操作:

  

tizen.ppm.checkPermission(readPrivilege,readCHSuccess,readCHError);

此方法是同步的,应按以下方式使用:

if (tizen.ppm.checkPermission(readPrivilege) != "PPM_ALLOW") {
  tizen.ppm.requestPermission(readPrivilege, readRPSuccess, readRPError);
} else {
  console.log("already allowed!");
}

在将以上代码用于readPrivilege时,它总是打印不需要询问的消息。

您可能想请求访问文件系统。为此,您需要请求proper privilege,与文件系统API没有直接关系。对于以下目的地:

具有适当的特权,将打开要求许可的弹出窗口。 还要注意,tizen.ppm api从4.0开始可用,因此请在应用的config.xml文件中添加所需的正确版本。

答案 2 :(得分:0)

下面的技术怎么样?

var cameraPrivilege = "http://tizen.org/privilege/camera";
var result = tizen.ppm.checkPermission(cameraPrivilege);
switch (result) {
    case "PPM_ALLOW":
        /* Update UI and start accessing protected functionality */
        break;
   case "PPM_DENY":
        /* Show a message and terminate the application */
        break;
   case "PPM_ASK":
        /* Request permission */
        break;
}

/* Define PermissionSuccessCallback */
function permissionSuccess(result, privilege)
{
    console.log("User's action for privilege " + privilege + " was to: " + result);
}

/* Define ErrorCallback */
function errorCallback(response)
{
    console.log("The following error occurred: " + response.name);
}

var cameraPrivilege = "http://tizen.org/privilege/camera";
tizen.ppm.requestPermission(cameraPrivilege, permissionSuccess, errorCallback);

有关更多详细信息,请查阅官方文档here