从QML/Javascript访问amazonaws服务
我试图在我的QtCreator项目中使用AWSSDK(),目的是将图像上传到我的S3存储桶中 我已将上面的JavaScript复制粘贴到名为awsSdk.js的文件中,并在main.qml文件中执行了以下操作:从QML/Javascript访问amazonaws服务,javascript,amazon-web-services,qml,qt-creator,aws-sdk,Javascript,Amazon Web Services,Qml,Qt Creator,Aws Sdk,我试图在我的QtCreator项目中使用AWSSDK(),目的是将图像上传到我的S3存储桶中 我已将上面的JavaScript复制粘贴到名为awsSdk.js的文件中,并在main.qml文件中执行了以下操作: // main.qml import QtQuick 2.3 import QtQuick.Window 2.2 import "jsTest.js" as JsTest import "awsSdk.js" as AWSSdk Window { visible: true widt
// main.qml
import QtQuick 2.3
import QtQuick.Window 2.2
import "jsTest.js" as JsTest
import "awsSdk.js" as AWSSdk
Window {
visible: true
width: 360
height: 360
Rectangle {
width: 360
height: 360
color: "white"
Text {
id: txt
anchors.centerIn: parent
text: "Counter"
color: "Blue"
}
MouseArea {
x: 0
y: 0
anchors.fill: parent
onClicked: {
if (JsTest.x>=20) {
console.log("Have a nice day :)");
Qt.quit();
}
else
txt.text = JsTest.jsTest();
}
}
}
}
我可以完美地导入jsTest.js文件。但是,当我尝试对awsSdk.js执行相同操作时,我得到以下错误:
QQmlApplicationEngine failed to load component
qrc:/main.qml:8 Script qrc:/awsSdk.js unavailable
qrc:/awsSdk.js:6023 Expected token `identifier'
jsTest.js的源代码:
// jsTest.js
var x=0;
function jsTest()
{
x++;
return "Counter : "+x+"";
}
我错过什么了吗?您是否有其他建议让我仅使用QML/Javascript将文件从Qt项目上传到AWS S3?()
OP写道:
现在问题解决了。出于某种原因,inqml.qrc
中缺少指向该文件的指针。手动添加,现在可以正常工作了
qml.qrc文件的内容:
<RCC>
<qresource prefix="/">
<file>main.qml</file>
<file>jsTest.js</file>
<file>jQuery.js</file>
<file>aws-sdk-2.0.30.js</file>
</qresource>
</RCC>
main.qml
jsTest.js
jQuery.js
aws-sdk-2.0.30.js
我不熟悉QT或QML,但为什么要复制/粘贴并冒引入错误的风险?你不能保存AWS SDK JS并引用导入语句中的文件:将“lib/JS/AWS-SDK-2.0.30.JS”导入为AWSSDK吗?嗨@SébastienStormacq,我尝试了你的建议,但没有成功。还是给了我同样的错误。谢谢,我不知道QT/QML足以帮助你,对不起。我只建议使用以下调试方法:1/请记住,浏览器JS SDK是为在浏览器中工作而设计的。我不知道QT执行环境:它是否模拟完整的浏览器并提供对浏览器暴露对象的访问?2/不要使用SDK的简化版本,而是使用易于调试的纯文本版本()。注意错误的行号,探索源代码以找到可能的解释OK伙计们,没关系,现在已经解决了:)由于某种原因,在qml.qrc中缺少指向文件的指针。手动添加,现在可以正常工作了。无论如何谢谢你的帮助@SébastienStormacqhi我真的很高兴你能成功。我需要这样的东西已经很久了。你有没有可能在网上为我们提供一个完整工作示例的链接?这将是一个巨大的帮助