繁体   English   中英

从手机上的OneDrive选择文件-移动网站

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM