Appcelerator 解析 uri
Appcelerator resolve uri
我正在研究在应用程序中导入文件的过程,在这种情况下,我正在使用 google 驱动器文件。
当用户选择一个文件 startActivityForResult
returns 一个 url 这样的:
content: //com.google.android.apps.docs.storage/document/acc%%3D1%%3Bdoc%%3D1214
我无法解析此 url 以访问文件的内容。有没有人有这方面的经验?
在 google 上,我发现了一些旧模块,但是,我认为不能解决我的问题。
谢谢。
我终于找到了解决办法。
在尝试获取内容之前,您需要将文件复制到 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);
}
});
我正在研究在应用程序中导入文件的过程,在这种情况下,我正在使用 google 驱动器文件。
当用户选择一个文件 startActivityForResult
returns 一个 url 这样的:
content: //com.google.android.apps.docs.storage/document/acc%%3D1%%3Bdoc%%3D1214
我无法解析此 url 以访问文件的内容。有没有人有这方面的经验?
在 google 上,我发现了一些旧模块,但是,我认为不能解决我的问题。
谢谢。
我终于找到了解决办法。 在尝试获取内容之前,您需要将文件复制到 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);
}
});