允许在 WebApp 的独立模式下共享 iOS 中的文件
Allow sharing a file in iOS on standalone mode in a WebApp
我有一个 WebApp,它在 Android 和 iOS 环境中都可以正常工作。问题是,在其中一个屏幕中,WebApp 生成(并显示)一个 PDF 文件,该文件应该可以通过电子邮件、WhatsApp、Telegram 等共享。
Android 允许在独立显示模式下使用 share 选项,但是 iOS 只是没有。我需要知道是否有任何方法可以在打开 pdf 文件时 退出 WebApp 模式进入普通的好旧浏览器模式,以便用户实际上可以与 his/her 通过浏览器的本机共享对话框联系。
这些是 manifest.json
文件的内容
{
"name": "Test App",
"short_name": "TestApp",
"icons": [
{
"src": "/icon-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/icon-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
],
"start_url": "https://example.com?a2hs=1",
"scope": "/",
"display": "standalone",
"orientation": "portrait",
"background_color": "#000000",
"theme_color": "#000000"
}
到目前为止,我已经尝试过:
在 pdf link.
中使用 <a href="test.pdf" target="_blank">Display PDF</a>
使用javascript强制打开一个新的window:
<a href="test.pdf" id="pdf">test</a>
<script>
$(function(){
$('#pdf').click(function(e){
e.preventDefault();
window.open($(this).attr('href'), '_blank');
return false;
});
});
</script>
None 个解决方案已解决。
此外,我尝试将 manifest.json
文件中的 display:
属性 更改为 minimal-ui
- 这确实允许共享 file/url 但删除WebApp 的外观和感觉,所以它不是一个选项。
有什么想法吗?谢谢!
我设法找到了解决方案。我创建了这个别名子域:
pdf.example.com
然后,我将 pdf 链接到别名子域:
<a href="https://pdf.example.com/test.pdf">Display PDF</a>
iOS 将其识别为另一台服务器,因此它会自动强制在 Safari 中的新选项卡中加载文件,从而退出 Web 应用程序的当前独立模式。
我有一个 WebApp,它在 Android 和 iOS 环境中都可以正常工作。问题是,在其中一个屏幕中,WebApp 生成(并显示)一个 PDF 文件,该文件应该可以通过电子邮件、WhatsApp、Telegram 等共享。
Android 允许在独立显示模式下使用 share 选项,但是 iOS 只是没有。我需要知道是否有任何方法可以在打开 pdf 文件时 退出 WebApp 模式进入普通的好旧浏览器模式,以便用户实际上可以与 his/her 通过浏览器的本机共享对话框联系。
这些是 manifest.json
文件的内容
{
"name": "Test App",
"short_name": "TestApp",
"icons": [
{
"src": "/icon-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/icon-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
],
"start_url": "https://example.com?a2hs=1",
"scope": "/",
"display": "standalone",
"orientation": "portrait",
"background_color": "#000000",
"theme_color": "#000000"
}
到目前为止,我已经尝试过:
在 pdf link.
中使用 使用javascript强制打开一个新的window:
<a href="test.pdf" target="_blank">Display PDF</a>
<a href="test.pdf" id="pdf">test</a>
<script>
$(function(){
$('#pdf').click(function(e){
e.preventDefault();
window.open($(this).attr('href'), '_blank');
return false;
});
});
</script>
None 个解决方案已解决。
此外,我尝试将 manifest.json
文件中的 display:
属性 更改为 minimal-ui
- 这确实允许共享 file/url 但删除WebApp 的外观和感觉,所以它不是一个选项。
有什么想法吗?谢谢!
我设法找到了解决方案。我创建了这个别名子域:
pdf.example.com
然后,我将 pdf 链接到别名子域:
<a href="https://pdf.example.com/test.pdf">Display PDF</a>
iOS 将其识别为另一台服务器,因此它会自动强制在 Safari 中的新选项卡中加载文件,从而退出 Web 应用程序的当前独立模式。