Phonegap 中的 Dropbox Javascript Datastores API 示例为 Windows8 应用程序提供错误禁止框架

2024-03-23

我尝试为 Dropbox Javascript Datastores API 创建一个支持 Android 和 Windows8 的 Phonegap 应用程序,该应用程序使用此处提供的示例:https://github.com/dropbox/cordova-datastores-example https://github.com/dropbox/cordova-datastores-example

当我构建并运行 Android 应用程序时,它可以在 Android 平板电脑上完美运行。但是当我运行为Windows8创建的应用程序时,显示错误:The app couldn't navigate to ... because of this error: FORBIDFRAMING。然后之后什么也没有发生。

我还没有找到使用框架的替代方法。我想知道,是否有办法成功运行此示例的 Windows8 应用程序,以及我将在哪里更改示例以替换框架。 (或者,如果有另一种方法来验证用户登录,这样我就不必使用框架。)

Thanks.


Premise

这是一个 hacky 解决方案,可能会被移植到针对 dropbox-js 的正确 Pull 请求中:

准备:

  • 从以下位置下载 dropbox-js 客户端here http://cdnjs.cloudflare.com/ajax/libs/dropbox.js/0.10.2/dropbox.js并将其放入项目中js folder.
  • 确保它列在“解决方案资源管理器”中。如果不是,请右键单击该文件夹并通过“添加 -> 现有项目...”添加它。
  • Add dropbox.js给你的default.html.
  • 创建一个新文件。我叫它helpers.js并将其添加到您的default.html.
  • 打开你的package.appxmanifest文件并声明自定义协议。 (声明 -> 从下拉菜单中选择协议 -> 为其命名(例如 myapp))
  • 转到保管箱应用程序控制台 https://www.dropbox.com/developers/apps并注册一个新的应用程序。
  • 将重定向 URI 添加到已注册的应用程序:myapp://dropbox。注意myapp引用自定义协议。

步骤#1:添加助手

添加以下内容到helpers.js: http://pastebin.com/qpZbv7YG http://pastebin.com/qpZbv7YG

步骤#2:添加对协议处理程序的支持

当我们将自定义协议添加到我们的应用程序并将重定向 uri 添加到 dropbox 时,我们需要处理 来自 Dropbox 的呼叫。你的default.js

app.addEventListener("activated", function (args) {
  if (args.detail.kind === activation.ActivationKind.protocol) {
    // the application has been called via the custom protocol

    var requestUri = args.detail.uri.rawUri
      , params     = Dropbox.Util.Oauth.queryParamsFromUrl(requestUri)

    AppHelpers.dropbox.setParams(params)
  } else if (args.detail.kind === activation.ActivationKind.launch) {
    /* you should have this alread in place */
  }
})

步骤#3:向 dropbox-js 添加自定义 AuthDriver

打开 dropbox.js 并找到以下行:

  Dropbox.AuthDriver.Cordova = (function (_super) {

将以下代码粘贴到该行上方:

Dropbox.AuthDriver.WinRT = (function (_super) {
  __extends(WinRT, _super);

  function WinRT(options) {
    WinRT.__super__.constructor.call(this, options);
  }

  WinRT.prototype.url = function () {
    return 'myapp://dropbox';
  };

  WinRT.prototype.doAuthorize = function (authUrl, stateParam, client, callback) {
    var authHost, browser, onEvent, promptPageLoaded, removed,
      _this = this;
    var uri = new Windows.Foundation.Uri(authUrl);

    Windows.System.Launcher.launchUriAsync(uri)
  };

  return WinRT;
})(Dropbox.AuthDriver.BrowserBase);

请注意,这里再次引用了我们的自定义协议。

步骤#4:使用保管箱

在 helpers.js 中你会发现一个名为sync我用过

  • 检查用户是否已经通过身份验证。如果情况还不是这样,我们将把他重定向到保管箱。
  • 下载用户的联系数据并将其登录到控制台。

你基本上只需要使用MyHelpers.dropbox.getClient()并与最终的客户端进行交互。它将返回一个正确的实例保管箱客户端 https://github.com/dropbox/dropbox-js/blob/stable/guides/getting_started.md

最后的话

希望有帮助! 您可以在这里找到客户端可用的方法:http://coffeedoc.info/github/dropbox/dropbox-js/master/classes/Dropbox/Client.html#readFile-instance http://coffeedoc.info/github/dropbox/dropbox-js/master/classes/Dropbox/Client.html#readFile-instance

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Phonegap 中的 Dropbox Javascript Datastores API 示例为 Windows8 应用程序提供错误禁止框架 的相关文章

  • Javascript/jQuery 变量未给出预期值

    和我之前的其他人一样 我也在 Javascript 的范围内苦苦挣扎 那并试图阅读该死的东西 我已经检查了关于这个问题的一些先前的线程 但我似乎无法让它们正确地应用于我的问题 在下面的示例中 我想操纵中的值tagsArr数组 一旦数组已完全
  • Javascript 闭包与 PHP 闭包,有什么区别?

    JS 中的闭包和 PHP 中的闭包有什么区别 它们的工作方式几乎相同吗 在 PHP 中编写闭包时有什么需要注意的注意事项吗 一个区别是两者如何处理存储执行匿名函数的上下文 JavaScript var a 1 var f function
  • 如何以 JavaScript 编程方式获取旋转的 svg 文本边界

    我正在动态渲染 SVG 图像并创建旋转文本 如果旋转的文本与其他文本重叠 我需要删除该文本 但我无法测量旋转的文本来创建边界并检查下一个标签文本区域 我创建了 3 个 SVG 元素来解释 SVG 1 显示重叠的文本 SVG 2 显示重叠的旋
  • ExtJS 4 用于选择所选值的组合框事件

    由于某种原因 我需要知道用户何时从组合框中选择了值 即使它已经被选择 仅当用户选择未选择的项目时 选择 事件才起作用 我在组合框或选择器的文档中没有看到任何类似 itemclick 的事件 有任何想法吗 ComboBox uses 绑定列表
  • React useEffect hook 和 Async/await 自己的获取数据函数?

    我尝试创建一个从服务器获取数据的函数 并且它有效 但我不确定这是否正确 我创建了一个函数组件来获取数据 使用useState 使用效果 and 异步 等待 import React useState useEffect from react
  • 显示来自 mongodb 的所有数据并在 doT.js 模板引擎中渲染它

    我想从 mongodb 中提取数据并将其传递给视图 一切似乎都正常 但我没有看到所有 10000 条记录都显示出来 而是只看到了一条 我觉得我非常接近解决它 但我陷入困境 我正在使用node mongodb native express和d
  • 如何将js文件从同一文件夹导入chrome扩展中的background.js

    我在导入与 background js 脚本库 位于同一库中的文件 score js 时遇到问题 我对 js 和 chrome 扩展都很陌生 我研究了 require js 并做了这个 背景 html h1 Tab Manager h1
  • 如何使用 jQuery Validate 正确验证放置在多个选项卡上的 Twitter Bootstrap 表单?

    我有一个表单位于多个 Twitter 的 Bootstrap 选项卡上
  • Lodash 和 Underscore.js 之间的差异 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 为什么有人会更喜欢Lodash http lodash com or 下划线 js http underscorejs org 实用程序库优于其
  • Javascript 3d 绘图实用程序? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道有什么好的 javascript 3d 绘图实用程序吗 我知道每个网站都推荐过画布 3d 图
  • 如何禁用向左滚动?

    I got a div 元素 parent 包含多个子元素 item 我想启用滚动父元素一个方向 left OR正确的 否则什么都不会发生 看我的代码 parent scroll function gt gt gt scroll event
  • 单击 div 中的图像时如何翻转该 Div?

    好吧 我对编写 Javascript 知之甚少 我可以对其进行一些编辑 并且涉足了 CSS3 动画 我将向您展示我正在努力实现的目标 然后在下面进行解释 网站布局将是这样的 https i stack imgur com RMb4R jpg
  • 使用XMLHttpRequest自动网页刷新内存泄漏

    问候 我一直在为一些使用 8 位微控制器的硬件开发网络界面 该网页使用 HTML javascript JSON 和 XHR XMLHttpRequest 进行通信 我想做的是创建一个页面 使用 setInterval 使用控制器中的新值每
  • AngularJS 中的嵌套模块

    我有 2 个不同的 AngularJs 模块 一个 widgetContainer 和一个 widget 小部件可以显示为独立的应用程序 也可以包含在小部件容器中 一个 widgetContainer 包含 0 N 个 widget 如果我
  • 用空字符串替换状态:Javascript

    我有这个网址 website com con blog true 我在 javascript 中所做的是 if getURLparams blog RandomFunction change the url window history r
  • Kotlin JavaScript 到 TypeScript 定义文件

    我已经找到了ts2kt 库 https github com Kotlin ts2kt这将从任意位置创建 Kotlin 头文件 d ts文件 但是 我想朝相反的方向走 我想构建一个可以编译为 JavaScript 的 Kotlin 库 但我
  • 出于安全目的,您是否有理由不执行自己的算法来打乱 ID?

    我计划实现我自己的非常简单的 哈希 公式 为具有多个用户的应用程序添加一层安全性 我目前的计划如下 用户创建一个帐户 此时后端会生成一个 ID ID 通过公式运行 假设 ID 57 8926 36 7 或同样随机的东西 然后 我将新的用户
  • “x modulo y”的结果是什么?

    引用 ECMAScript 规范第 5 2 节 符号 x modulo y y 必须是有限且非零 计算 值 k 与 y 具有相同的符号 或零 使得 abs k 因此 如果 y 为正 则 x modulo y 的结果 k 为正 无论 x 的符
  • KML 中的 JavaScript 被 Google 地球插件忽略

    我创建了一个简单的 KML 文件 该文件可以在独立的 Google 地球客户端中运行 但在 Google 地球插件中根本无法运行 无论浏览器如何
  • 在哪里放置资源特定逻辑

    您能帮我考虑在 AngularJS 中将资源 服务 特定的业务逻辑放置在哪里吗 我觉得在我的资源上创建一些类似模型的抽象应该很棒 但我不确定如何做 API调用 gt GET customers 1 lt first name John la

随机推荐