Javascript QML中的jsrequire
我正在QML应用程序中使用dbox库(源代码可从获取)。在QML文件中,我使用以下代码导入dbox库:Javascript QML中的jsrequire,javascript,qt,qml,qtquick2,Javascript,Qt,Qml,Qtquick2,我正在QML应用程序中使用dbox库(源代码可从获取)。在QML文件中,我使用以下代码导入dbox库: import "./dbox-master/lib/dbox.js" as Dbox 然后我这样使用它: var app = Dbox.app({ "app_key": root.appKey, "app_secret": root.appSecret }) 但是,在dbox.js文件顶部有一系列require语句: define(['require', 'request', 'que
import "./dbox-master/lib/dbox.js" as Dbox
然后我这样使用它:
var app = Dbox.app({ "app_key": root.appKey, "app_secret": root.appSecret })
但是,在dbox.js
文件顶部有一系列require
语句:
define(['require', 'request', 'querystring', 'path'], function (require) {
var request = require('request');
var qs = require('querystring');
var path = require('path');
var helpers_ = require("./helpers")
// var request = require('request');
});
//var request = require("request")
//var qs = require("querystring")
//var path = require("path")
//require(['request'], function (foo) {
// console.log('request is loaded')
//});
exports.app = function(config){
var root = config.root || "sandbox"
var helpers = helpers_(config)
return {
root: root,
requesttoken: function(cb){
var signature = helpers.sign({})
var body = qs.stringify(signature)
var args = {
"method": "POST",
"headers": {
"content-type": "application/x-www-form-urlencoded",
"content-length": body.length
},
"url": "https://api.dropbox.com/1/oauth/request_token",
"body": body
}
return request(args, function(e, r, b){
var obj = qs.parse(b)
obj.authorize_url = "https://www.dropbox.com/1/oauth/authorize?oauth_token=" + obj.oauth_token
cb(e ? null : r.statusCode, obj)
})
},...
如您所见,我更改了代码以使dbox.js
正常工作,但没有定义require
。如何正确使用require.js
更新。
我发现问题出在主机环境中。QML全局空间是常量
Node.js
要求空间中存在对象(例如iself)并将其导入全局空间。有一个粘合Node.js
和QML,但它还没有完成。我提出另一个解决方案:制作一个C++插件,在JS中运行脚本。脚本在Node.js
环境中运行,以将Dropbox帐户信息传达给基于Quick的应用程序。使用web API的最佳方法是什么<在这种情况下,代码>下拉框
视情况而定
因为我需要列出所有文件并下载一个文件,所以最好的选择是手动使用Dropbox
API
我使用了OAuth2
来授权应用程序,即令牌缺陷,因为它很快
WebView
是应用程序。内置浏览器。一旦redirect\u uri
设置为WebView url
属性值,则表示已通过授权。访问令牌
随重定向一起返回
注意。
redirect_uri
必须等于应用程序中的应用程序AppConsole
中设置的redirect_uri
<代码>下拉框
帐户
结果:我没有使用3d party
Dropbox JS
库,手动发送请求要快得多