gpt4 book ai didi

facebook - QML 有什么方法可以使用 Facebook Javascript SDK 加载数据吗?

转载 作者:行者123 更新时间:2023-11-30 05:26:14 25 4
gpt4 key购买 nike

我正在尝试让 QML 使用 FB Javascript SDK 与 FB 图形 API 交互。

我正在将此 HTML 加载到 WebView 元素中:

 html: "<script>console.log(\"This is in WebKit!\"); window.FB.init();</script>"

我还在 WebView 中创建了一个名为 FB 的 JS 窗口对象:

 javaScriptWindowObjects: QtObject {
WebView.windowObjectName: "FB"
}

但是一旦 window.FB.init() 被调用,它就会抛出一个错误:

ReferenceError: Can't find variable: window

我使用的另一种方法是使用 Component.onComplete 加载 FB.init() 函数

     function startupFunction() {
console.log("This call is in QML!");
FB.init({
appId:'XXXXXXXXXXXXX', cookie:true,
status:true
});
console.log(FB);
}
Component.onCompleted: startupFunction();

但我得到的错误是:

TypeError: Result of expression 'FB.init' [undefined] is not a function

这是完整的 QML:

import QtQuick 1.0
import "fb.js" as FB
import QtWebKit 1.0
Rectangle {
width: 360
height: 360
Text {
text: "Hello World"
anchors.centerIn: parent
}

MouseArea {
anchors.fill: parent

}
WebView {
preferredWidth: 490
preferredHeight: 400
scale: 0.5
smooth: false

javaScriptWindowObjects: QtObject {
WebView.windowObjectName: "FB"
}
html: "<script>console.log(\"This is in WebKit!\"); window.FB.init();</script>"

function startupFunction() {
console.log("This call is in QML!");
FB.init({
appId:'xxxxxxxxxxxx', cookie:true,
status:true
});
console.log(FB);
}
Component.onCompleted: startupFunction();
}

}

最佳答案

我认为问题在于您没有在窗口对象中定义任何内容,您的 QtObject 只包含 windowObjectName 但没有函数或变量。 windowObjectName 实际上只是新对象的名称,qml 不使用该对象的 "fb.js"-import。

根据docs它应该看起来像这样:

WebView {
javaScriptWindowObjects: QtObject {
WebView.windowObjectName: "FB"

// the stuff you want in that window-object goes here:
function init() {
console.log("FB.init");
}
}
}

关于facebook - QML 有什么方法可以使用 Facebook Javascript SDK 加载数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7098075/

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