Appcelerator解析uri

时间:2017-01-04 12:04:31

标签: javascript android titanium appcelerator android-contentresolver

我正在开发一个在应用程序中导入文件的程序,在这种情况下我正在使用谷歌驱动器文件。

当用户选择文件startActivityForResult时,会返回如下所示的网址:

content: //com.google.android.apps.docs.storage/document/acc%%3D1%%3Bdoc%%3D1214

我无法解析此网址以访问该文件的内容。有没有人有这方面的经验?

在谷歌上我找到了一些旧模块,但是,我认为不能解决我的问题。

谢谢。

1 个答案:

答案 0 :(得分:0)

最后我找到了解决方案。 在尝试获取内容之前,您需要将文件复制到applicationDataDirectory。

复制文件将自动解析内容uri。

var intent = Ti.Android.createIntent({
    action: Ti.Android.ACTION_GET_CONTENT,
    type: '*/*'
});

$.win.activity.startActivityForResult(intent, function(e) {

    if (e.intent) {

        var filePath = e.intent.data;
        var file = Ti.Filesystem.getFile(filePath);
        var copiedFile = Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory, file.name);
        file.copy(copiedFile.nativePath); 

        if (!copiedFile.exists()) {
            // show your error message
            return;
        }

        // file content
        console.log(copiedFile.read().text);

    }
});