无法在NaCl中调用`pp :: FileChooser_Dev`

时间:2014-07-24 12:06:30

标签: google-nativeclient ppapi

我需要编写一个文件上传器PPAPI插件,而不是在Chrome中使用NPAPI。

我在hello_nacl_cpp示例中扩展vs_addin项目以测试PPAPI和NaCl。代码类似于:

...

int32_t showSelectFileDialog() {
    pp::CompletionCallbackWithOutput< std::vector<pp::FileRef> > cb =
        factory_.NewCallbackWithOutput(&NaClProjectInstance::onFilesSelected);

    int32_t ret = file_chooser_.Show(cb);

    return ret;
}

void onFilesSelected(int32_t result,
                     const std::vector<pp::FileRef>& files) {
    std::stringstream ss;

    if (result == PP_OK) {
        // ok
    } else {
        ss << "undo select file? error code: " << result;

        PostMessage(pp::Var(ss.str()));
    }
}
...

如果我选择PPAPI平台并调试上面的代码,那就没问题。但在NaCl64平台上,结果为PP_ERROR_NO_USER_GESTURE(-41)。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

/ **    *此值表示由于缺少诸如a的用户手势而导致的失败    *鼠标点击或键输入事件。需要用户的操作示例    *手势显示文件选择器对话框并进入全屏    *模式。    * /   PP_ERROR_NO_USER_GESTURE = -41,

在HandleInputEvent中调用showSelectFileDialog()