如何解决使用默认应用程序 nativescript 7 打开文件
我有一个应用程序,可以在其中下载某些文档。这些文档以 base64 编码字符串的形式出现,我使用以下代码将其保存到设备:
const binaryString = decode(base64Content);
const filePath = path.join(kNownFolders.documents().path,filename);
const file = File.fromPath(filePath);
file.writeTextSync(
binaryString,(err) => {
console.log(err);
},encoding.ISO_8859_1
);
保存此文件后,我希望能够在默认查看器中打开它(这些文件通常是 png
或 pdf
文件)。我尝试使用如下所示的意图来实现这一点:
if (isAndroid) {
const context = Utils.ad.getApplicationContext();
try {
// Get mimeType
const fsa = new FileSystemAccess();
const mimeTypeMap = android.webkit.MimeTypeMap.getSingleton();
const mimeType = mimeTypeMap.getMimeTypeFromExtension(
fsa.getFileExtension(filepath).replace(".","").toLowerCase()
);
// Create intent
const intent = new android.content.Intent(android.content.Intent.ACTION_VIEW);
intent.setFlags(android.content.Intent.FLAG_ACTIVITY_NEW_TASK);
// Get file Url
const url = androidx.core.content.FileProvider.getUriForFile(
context,context.getApplicationContext().getPackageName() + ".provider",new java.io.File(filepath)
);
// Set intent data
intent.setDataAndType(url,mimeType);
// Create chooser
const chooser = android.content.Intent.createChooser(intent,"Open File...");
chooser.addFlags(android.content.Intent.FLAG_GRANT_READ_URI_PERMISSION);
chooser.setFlags(android.content.Intent.FLAG_ACTIVITY_NEW_TASK);
// Start activity
context.startActivity(chooser);
} catch (e) {
console.log(e);
}
}
Error: java.lang.IllegalArgumentException: Failed to find configured root that contains /data/data/com.techairos.wtaapp/files/2581875 PL.pdf
我已经尝试四处寻求帮助,但我所做的修复似乎都没有帮助。任何指向正确方向的指针将不胜感激!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。