[英]Select a file from OneDrive on phone - mobile web site
编辑-标题以前
OneDrive Web Picker SDK(Javascript)无法选择/打开移动设备上的文件
来自SO的自动电子邮件建议我在赏金有效期到期后更改标题。
我已经按照以下说明在移动友好的网站上创建了OneDrive选择器:https://dev.onedrive.com/sdk/javascript-picker-saver.htm ,它在Windows桌面上可以正常工作。
但是,在移动浏览器(Android 4.2上的Android Browser&Chrome,以及iOS 7上的Safari)上,选择器启动并以OK身份登录,可以看到文件,但是当我点击选择文件时,“打开”按钮仍然处于禁用状态。
编辑,只是为了澄清:我不想将文件上传到OneDrive。 我要选择OneDrive帐户中已经存在的文件,并将其URL传递回页面。 这样我就可以将该URL发送到服务器并让服务器提取文件
如果我长按选择的文件,则会出现一个带有“打开”选项的内容菜单(即,类似于Windows中的右键单击菜单)-选择此项似乎会使Onedrive重新加载。
我的代码是:
<script type="text/javascript" src="https://js.live.net/v5.0/OneDrive.js" id="onedrive-js" client-id="0000000011111111"></script>
<script type="text/javascript">
var pickerOptions = {
success: function(files) {
console.log(files);
document.getElementById("cloud_cv_source_input").value = "onedrive" ;
document.getElementById("cloud_cv_file_url_input").value = files.values[0].link ;
document.getElementById("cloud_cv_file_name_input").value = files.values[0].fileName;
document.getElementById("cloud_cv_file_size_input").value = files.values[0].size;
},
cancel: function() {
// handle when the user cancels picking a file
},
linkType: "downloadLink", // or "downloadLink",
multiSelect: false // or true
}
function launchOneDrive()
{
OneDrive.open(pickerOptions);
}
</script>
我确实在文档末尾看到了这一点:
The OneDrive picker and saver supports the following web browsers:
Internet Explorer 9+
Latest version of Chrome
Latest version of Firefox
Latest version of Safari
因此,假设此SDK仅适用于桌面网站,这是正确的吗?如果是,那么我应该对移动网站使用什么? 我知道有适用于Android和iOS的SDK,但我不是在开发本机应用。
谢谢。
我花了一些时间研究此问题并进行了一些测试,但没有在线访问您的应用程序的URL(因此我可以直接在服务器上对其进行测试),这是我的初步想法:
可以在移动设备上使用吗? 从理论上讲,如果用户正在使用支持的设备在其手机上进行浏览,则应该这样做。 但是,当我尝试查看您为OneDrive开发中心提供的JS Web Picker SDK的参考URI时,该页面不会显示示例,让我使用以下设备在Android上选择文件:Chrome,Firefox或妻子的iPhone,苹果浏览器。 显然,Micro $ oft选择不对它们声明支持的移动版本的浏览器进行文档页面代码测试。
您可能想在执行代码周围添加健全性检查(以确保响应中有可用文件)。 此外,我在文档代码中看到,它们正在清除选择器的取消和选择结果(用于查看和保存)。 如果您有一个可以测试您的代码的URI,我将很乐意为您提供更多帮助。
<script type="text/javascript" src="https://js.live.net/v5.0/OneDrive.js" id="onedrive-js" client-id="0000000011111111"></script>
<script type="text/javascript">
var pickerOptions = {
success: function(file) {
// Sanity check
if( !file ) {
// Handle no file being returned
} else {
var f = file.values[0];
document.getElementById("cloud_cv_source_input").value = "onedrive" ;
document.getElementById("cloud_cv_file_url_input").value = f.link ;
document.getElementById("cloud_cv_file_name_input").value = f.fileName;
document.getElementById("cloud_cv_file_size_input").value = f.size;
} // end if
},
cancel: function() {
// handle when the user cancels picking a file
},
linkType: "downloadLink",
multiSelect: false
}
function launchOneDrive() {
OneDrive.open(pickerOptions);
}
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.