gpt4 book ai didi

file - Chrome 打包应用程序 : Retrieving FileEntry in Dart from command line (LaunchData) parameter

转载 作者:行者123 更新时间:2023-12-03 03:18:21 25 4
gpt4 key购买 nike

与关于此主题的另一篇文章类似,我一直在尝试使用本地 XML 文件的文件路径从命令行运行我的应用程序,以便我的 main.dart可以解析这个文件,以便从中提取与程序操作相关的信息。我一直不知道如何正确访问 FileEntry launchData 中包含的引用资料-- onLaunched 的参数事件。

这是我目前拥有的:

manifest.json :

...
"permissions": [
"storage",
"fileSystem",
"*://*/*"
],

"file_handlers" : {
"any" : {
"types" : [ "*" ]
}
},
...

背景.js :
chrome.app.runtime.onLaunched.addListener(function(launchData) {

chrome.app.window.create(

'htmlFile.html',

{...},

function(createdWindow) {
createdWindow.contentWindow.launchData = launchData;
});
});

此时,我无法访问 launchData来自 main.dart因为试图做
  FileEntry entry =  (chrome.app.window.current().contentWindow.launchData as chrome.LaunchData).items.elementAt(0).entry;

获取 FileEntry导致访问 launchData 时出错.我真的很困惑我应该如何访问 FileEntry结果,我想从我的 Dart 代码中得到。

最佳答案

我最终将此作为我的解决方案:

manifest.json :

...
"file_handlers": {
"any": {
"extensions": [
"xml"
]
}
},
...

背景.js :
chrome.app.runtime.onLaunched.addListener(function(launchData) {

chrome.app.window.create(
'htmlSource.html',

{
id: 'mainWindow',
state: "fullscreen"
},

function(createdWindow) {

if(launchData.items !== undefined) {
launchData.items[0].entry.file(

function(result) {

var reader = new FileReader();
var XML;

reader.onloadend = function(){
XML = reader.result;
chrome.storage.local.set({'XML': XML});
};

reader.readAsText(result);

},

function(){
console.log("Error reading XML file");
}

);
} else {
console.log("No file was detected.");
}
});
});

检索 XML 的 dart 代码很简单:
String text = (await chrome.storage.local.get('XML'))['XML'];

关于file - Chrome 打包应用程序 : Retrieving FileEntry in Dart from command line (LaunchData) parameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31975094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com