我编写了一个webapp,它使用ink filepicker打开/保存文本文件到云端。在移动浏览器中,当我通过以下方式打开文件时:
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或Android股票浏览器上的Safari,或Google Chrome Android ...)。 如果它被激活,浏览器拒绝在新选项卡中打开导出对话框,并使用" FPError 131"在控制台......
我无法告诉我的用户停用此选项!
那么有没有解决方法呢?
感谢' s!
答案 0 :(得分:0)
一些解决方法是在同一页面的filepicker中打开filepicker对话框。 对于移动设备,请更改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