使用 API 将外部数据加载到 PhoneGap 应用程序中

Posted

技术标签:

【中文标题】使用 API 将外部数据加载到 PhoneGap 应用程序中【英文标题】:Loading external data into a PhoneGap app using an API 【发布时间】:2016-09-29 13:35:22 【问题描述】:

我想通过 API 与我的服务器通信。

我的第一个问题:是否可以编写自己的 API 并将其与 Phonegap 一起使用?

这个应用程序会:

在 SHA1 中发送登录密码。

API 将返回令牌或 SLUG 将存储在本地,这将允许(或不允许)访问应用程序的内容:换句话说,是否成功验证。

认证成功后,应用会向 API 发送一个 POST 请求,其中包含令牌的值,以检索与令牌相关的数据(用户相关)。

以 JSON 格式检索的查询结果。

我的第二个问题:它是如何工作的,我需要什么?

感谢您的帮助!

【问题讨论】:

【参考方案1】:

绝对有可能满足您的要求。您可以使用从客户端到服务器端的 ajax 调用并取回您需要的所有数据,即连接令牌。

所以,给你点:

    “在 SHA1 中发送登录名/密码”:从 DOM 中获取登录名/密码对,转换为 SHA256(优于 SHA1),通过 ajax 发送到您的服务器 以 JSON 格式从您的服务器取回结果。如果成功,获取给定的令牌并在本地临时存储 使用令牌调用从客户端到服务器的每个通信 API,这样您就可以确定用户身份

如果个人数据由您的应用管理,我还建议使用 https 协议。

你需要什么? JS 和/或 jQuery 经验,(可能)管理客户端和服务器端的所有代码,是时候开发了。我还建议您使用名为Runscope 的出色在线工具来跟踪您的所有客户端/服务器通信和调试。

//// 编辑 ////

如何与您的 API 交互:我是客户端开发人员,所以我可以给您一个 sn-p 以登录:

email = $("#email").val(); password = $("#password").val(); var newdatatosend = email+"/"+password; var datatosend = "login": window.btoa(newdatatosend) ; $.ajax( type: "POST", url: url_main+url_api+url_login, dataType: 'json', data: JSON.stringify(datatosend), contentType: "application/json" ) .done(function(data) // Here are data received from the server: the connection token )

如您所见,我从服务器接收令牌(如果我的凭据是真实的)并将其存储在 SessionStorage(当应用程序关闭时为空的本地存储)。无论如何,您应该在服务器端管理令牌的到期时间(2 小时?12 小时?)。因此,当客户端尝试使用其存储的旧令牌时,您应该要求再次登录以刷新会话。

要使用会话存储,您只需使用 set/get 函数:

sessionStorage.setItem('mytoken', token);
var token = sessionStorage.getItem('mytoken');

【讨论】:

感谢您的回复。我已经对整体操作了如指掌。我想要的是如何与 API 进行交互 我还想知道令牌是如何工作的、如何存储它以及可能对它的使用提出建议(特定令牌的有效期) 我知道 javascript 和 JQuery对 JQuery 有一点偏好。我希望在客户端处理最大的事情,以期在未来拥有重要的用户群,并避免使用最大的服务器。

以上是关于使用 API 将外部数据加载到 PhoneGap 应用程序中的主要内容,如果未能解决你的问题,请参考以下文章

在带有外部 URL 的 iOS 上使用 PhoneGap/Cordova

PhoneGap Plugin ExternalScreen 加载外部资源

在 jquery mobile / phonegap 中重新加载外部脚本(即谷歌地图)

在启动时加载外部链接的 Phonegap 应用程序 - Android

将 phonegap 版本升级到 cli-5.4 后 Jsons 不加载

使用插件访问从 phonegap Cordova 中的外部 URL 加载 Webste