我可以创建一个文件夹(如果该文件夹不存在),然后将新写入的文件以前保存在该文件夹中。但是更新为最新的本机脚本后,相同的代码无法正常工作,并且无法正确给出错误。
我也遇到错误
错误:android.util.AndroidRuntimeException:从Activity上下文外部调用startActivity()需要FLAG_ACTIVITY_NEW_TASK标志。 >这真的是您想要的吗?
const fileSystemModule = require("tns-core-modules/file-system");
const documents = fileSystemModule.knownFolders.documents();
documents._path = "/storage/emulated/0/";
const folder = documents.getFolder('Reports/sample/');
const file = folder.getFile('fileName.xlsx');
file.writeText(viewModel.get("fileTextContent") || html_content)
.then((result) => {
return file.readText()
.then((res) => {
var toast = Toast.makeText("Exported to Excel Succesfully");
toast.show();
return res;
});
}).then((result) => {
console.log("---result---");
console.log(result); // im getting result, a html string
var intent = new android.content.Intent(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(android.net.Uri.fromFile(new java.io.File(file._path)), "application/vnd.ms-excel");
application.android.context.startActivity(android.content.Intent.createChooser(intent, "Open Excel..."));
}).catch((err) => {
console.log(err);
});
在更新之前,它工作正常。但是现在我不知道发生了什么事。
答案 0 :(得分:0)
这是Android本身的一项新要求。您必须在意图中添加FLAG_ACTIVITY_NEW_TASK
标志。
在Android 9中,除非传递意图标志FLAG_ACTIVITY_NEW_TASK,否则您无法从非活动上下文中启动活动。如果您尝试在未传递此标志的情况下启动活动,则该活动不会启动,并且系统会在日志中显示一条消息。
intent.addFlags(android.content.Intent.FLAG_ACTIVITY_NEW_TASK);