gpt4 book ai didi

javascript - QML 中的 JS 要求

转载 作者:行者123 更新时间:2023-11-28 07:24:19 25 4
gpt4 key购买 nike

我正在 QML 应用程序中使用 dbox 库(来源可在 github 获取)。在 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)并导入到全局空间中。有一个project on github粘合 Node.js 和 QML,但尚未完成。我提出另一个解决方案:制作一个 C++ 插件来运行 js 中的脚本。该脚本在 Node.js 环境中运行,以将 Dropbox 帐户信息传递给基于 Quick 的应用程序。

最佳答案

使用 Web API 的最佳方法是什么?在这种情况下,Dropbox

这取决于。

由于我需要列出所有文件并下载文件,因此最好的选择是手动使用 Dropbox API。

我使用 OAuth2 来授权应用程序,即 token 缺陷,因为它速度很快。

WebView 是应用程序。内置浏览器。一旦将 redirect_uri 设置为 WebView url 属性值,则表示授权已通过。 访问 token 随重定向一起返回。

注意。redirect_uri 必须等于应用程序 AppConsole 中设置的 redirect_uriDropbox 帐户。

结果:我没有使用 3d party Dropbox JS 库,手动发送请求要快得多。

关于javascript - QML 中的 JS 要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29866093/

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