0

我编写了一个 web 应用程序,它使用墨迹文件选择器从/向云打开/保存文本文件。在移动浏览器中,当我通过以下方式打开文件时:

filepicker.pick({extension: '.txt'},
    function(FPFile) {
        filepicker.read(FPFile, function(data) {
            // Open file
        });
    });

浏览器中是否激活了“阻止弹出”选项是没有问题的。但是当我通过以下方式保存文件时:

        filepicker.store(
        mycontent64,
        {base64decode: true, mimetype: 'text/plain'},
        function(InkBlob) {
            filepicker.exportFile(
                InkBlob,
                {suggestedFilename:"myfile.txt",extension: ".txt"},
            function(InkBlob) {
            // ******* Save file
            },
            function(FPError) {
                console.log(FPError.toString());
            });
            },
        function(FPError) {
                console.log(FPError.toString());
        }
    );

它仅在浏览器中禁用“阻止弹出”选项时才有效(iPad 上的 Safari 或 Android 库存浏览器,或 google chrome Android ......)。如果它被激活,浏览器拒绝在新选项卡中打开导出对话框,并在控制台中显示“FPError 131”...

我不能告诉我的用户停用此选项!

那么有什么解决方法可以解决问题吗?

谢谢 !

4

1 回答 1

0

一些解决方法是在同一页面的文件选择器中打开文件选择器对话框。对于移动设备,更改 filepicker.exportFile 选项:

filepicker.store(
    mycontent64,
    {base64decode: true, mimetype: 'text/plain'},
    function(InkBlob) {
        filepicker.exportFile(
            InkBlob,
            {
               suggestedFilename:"myfile.txt",
               extension: ".txt"
               container: "yourIframeId",
               mobile: true
            },
        function(InkBlob) {
        // ******* Save file
        },
        function(FPError) {
            console.log(FPError.toString());
        });
        },
    function(FPError) {
            console.log(FPError.toString());
    }
);

“yourIframeId”是您网站内 iFrame 标签的 ID。'mobile: true' 将强制移动响应版本的对话框。检查文档:https ://developers.filepicker.io/docs/web/#export

于 2014-09-10T08:37:07.853 回答