你可以试一下
//安卓
// contentUri 是 content:// 格式的文件路径
let contentUri = 'content://com.example.provider/files/yourfile.pdf';
// 使用 Android 的内容解析器获取文件的实际路径
plus.android.importClass("android.content.ContentResolver");
plus.android.importClass("android.database.Cursor");
plus.android.importClass("android.net.Uri");
let resolver = plus.android.runtimeMainActivity().getContentResolver();
let uri = Uri.parse(contentUri);
let cursor = resolver.query(uri, null, null, null, null);
if (cursor != null) {
cursor.moveToFirst();
let columnIndex = cursor.getColumnIndex("_data");
if (columnIndex != -1) {
// 获取实际文件路径
let filePath = cursor.getString(columnIndex);
// 构建 file:// 格式的应用内部路径
let appInternalFilePath = 'file://' + filePath;
console.log('应用内部路径:', appInternalFilePath);
}
cursor.close();
} else {
console.error('无法获取文件路径');
}
//苹果
// contentUri 是 content:// 格式的文件路径
let contentUri = 'content://com.example.provider/files/yourfile.pdf';
// 使用 plus.ios.invoke 调用原生方法进行路径转换
plus.ios.invoke('YourNativeModule', 'convertContentUriToFilePath', [contentUri], {
success(result) {
// result 包含了转换后的应用内部路径
let appInternalFilePath = 'file://' + result;
console.log('应用内部路径:', appInternalFilePath);
},
fail(error) {
console.error('转换路径失败:', error);
}
});
1***@163.com (作者)
怎么转
2023-03-08 12:35
1***@163.com (作者)
直接替换吗?
2023-03-08 12:35