Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在支持应用程序的移动Safari模式下使用mailto:link时出错_Iphone_Web Applications_Mobile Safari_Mailto - Fatal编程技术网

Iphone 在支持应用程序的移动Safari模式下使用mailto:link时出错

Iphone 在支持应用程序的移动Safari模式下使用mailto:link时出错,iphone,web-applications,mobile-safari,mailto,Iphone,Web Applications,Mobile Safari,Mailto,我在一个网页上找到了一个表单,上面有一个动作“mailto:email”(email是一个真实的电子邮件地址)。当我以常规模式在Mobile Safari中加载此页面时(即,不使用支持应用程序的模式从主屏幕启动),这一切正常-在我提交表单后,电子邮件应用程序就会出现。然而,当我处于应用程序支持模式并从主屏幕启动(因此,没有Safari chrome)并提交表单时,我会收到错误“URL无法显示”。但是,在支持应用程序的模式下,常规的mailto:link(即,不在表单中)确实有效 还有人注意到了吗

我在一个网页上找到了一个表单,上面有一个动作“mailto:email”(email是一个真实的电子邮件地址)。当我以常规模式在Mobile Safari中加载此页面时(即,不使用支持应用程序的模式从主屏幕启动),这一切正常-在我提交表单后,电子邮件应用程序就会出现。然而,当我处于应用程序支持模式并从主屏幕启动(因此,没有Safari chrome)并提交表单时,我会收到错误“URL无法显示”。但是,在支持应用程序的模式下,常规的mailto:link(即,不在表单中)确实有效

还有人注意到了吗?有解决办法吗?在支持应用程序的模式下是否不允许表单

谢谢


伊丽莎白

我想我已经弄明白了。我注意到,在支持应用程序的模式下,任何http链接都会将你带出应用程序并启动一个单独的移动safari窗口,将你带到页面并显示safari chrome。有意义(通常不会链接到支持“一体式”应用程序的web应用程序中的任何内容。我注意到这一点,因为我使用自己的“选项卡栏”实现了一个4页的应用程序在底部,在a元素中使用纯http链接链接.html文件。当我用javascript函数替换它以使用document.location.replace加载页面时,不会发生这种情况

因此,在表单上——我认为必须发生的是,因为我使用的是一个方案(在本例中为mailto:),某种程度上,浏览器需要处于“常规模式”通过启动电子邮件应用程序来解释该方案并做正确的事情,这在提交表单时显然不起作用。我还没有在苹果的文档中找到任何与此相关的内容,因此如果有人知道技术细节,请发帖子

更新:我确实发现我可以在web应用模式下使用表单访问服务器端脚本,所以我仍然对mailto:问题感到好奇,如果有人有答案的话

谢谢


Elisabeth

我也有同样的问题,mailto链接不能在网络模式下工作。我刚刚向苹果提交了一份错误报告。让我们看看会发生什么,同时我找到了另一个网络应用开发平台,它可以在网络模式下工作,mailto链接也可以工作,但它在这种模式下工作很有趣——它没有那么流畅正如在Safari中一样。因为即使在我发现的这个新的web开发工具中,它也会关闭你的应用程序并启动邮件客户端,这是很糟糕的。在Safari中,它只是在邮件窗口中滑动,如果你点击“取消”或“发送”,它会滑回,但实际上并不会关闭你的应用程序。

这准确地描述了这个问题。邮件链接没有任何问题,但是无法加载电子邮件链接。Web应用程序经常崩溃

有趣的是,电话号码的tel:link工作正常

window.location.replace确实有效。谢谢

以下是jQuery自动修复此问题

$('a[href^=mailto]').click(function (event) {
    event.preventDefault();
    window.location.replace = $(this).attr('href');
    return false;
});

这里有一个不依赖于JQuery的变通方法:

aTmp = document.createElement("a");
aTmp.href="mailto:example@example.com?subject=Test&body=Hello.";
aTmp.click();

更新:要从书签运行此代码,您必须等待大约
1000 ms
,然后书签挡板才会关闭,浏览器才能响应。我通过将代码包装在
setTimeout
函数中实现了这一点。

很适合您提交错误。两个问题:(1)雷达号是多少,以及(2)你有没有把它贴在上面,以便苹果以外的人可以看到它,如果需要的话,也可以复制文件?顺便说一句,Mobile Safari可以在窗口上滑动,因为它是iPhone的原生应用程序,而不是web应用程序。由于MobileSafari处理外部URL方案,它可以做类似的事情。似乎最好的解决方案是从主屏幕a启动web应用程序在这方面有点聪明。:-/这个解决方案真的对任何人都有效吗?我已经尝试过了,但没有任何效果。在我的情况下,我不需要mailto链接,但我需要在另一个域上以支持应用程序的模式打开链接。iOS坚持它切换到Safari,这破坏了整个功能。使用
位置。替换
甚至
location.assign
将其保持在app-mode中。这对我来说很有效,但我必须将其包装在
$('document').ready(function(){…});
块中,并将命令设置为
window.location.href=…
以使其工作。