Javascript QML中的jsrequire

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

我正在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', '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
库,手动发送请求要快得多