我添加盒支持iPad应用程序。 我尝试了官方SDK,我不想使用它,原因如下:
登录页面太宽了,有模态控制器
UIModalPresentationFormSheet
iPad上的风格。 该SDK举办UIWebView
它加载的内容https://m.box.net/api/1.0/auth/ ,这或许与最小宽度设置为768px返回HTML(虽然我没有检查HTML,这里猜测)。HTML在登录页面不显示谷歌Apps的身份验证选项。 页面的完整的桌面版本一样。
因为登录页面被托管
UIWebView
用户不能确信他提供的凭据框,而不是一个应用程序的作者。我并不需要整个SDK的功能,只是验证,文件夹/文件列表和内容下载。 由于我的应用程序还使用其他云存储提供商我更愿意提供统一的文件浏览体验。
这就是我要做的事情:
添加自定义URL方案,我的应用程序,让我们说“的myapp”。
在盒子的应用程序设置为我的应用程序设置重定向URL以
myapp://RedirFromBoxAuth
。
当用户选择从我的应用程序内浏览框,我要去:
通过调用买到票
GET https://www.box.com/api/1.0/rest?action=get_ticket&api_key={API_KEY}
提取车票,然后调用
openUrl
与https://www.box.com/api/1.0/auth/{TICKET}
这将打开Safari浏览器,让用户输入他的凭据。 这是登录页面的完整,桌面版本。在成功登录框的服务器会告诉Safari浏览器重定向到
myapp://RedirFromBoxAuth?ticket={TICKET}&auth_token={TOKEN}
,这反过来会告诉iOS系统控制让给我的应用程序。我的应用程序接收
handleOpenURL
通知,我可以提取认证令牌和使用REST API从现在开始。
请评论,这是一个好的计划? 我创建了一个快速原型,它似乎工作,但也许我失去了一些东西?
盒子的团队,你能不能告诉我们都将使用此身份验证模型的应用程序有资格列入OneCloud?