javascript - 如何打开从 pwa(在 android shell 中)到另一个浏览器的链接
问题描述
我有一个在 android shell 中运行的简单 pwa 应用程序。每当我单击一个链接时,它都会在 android 浏览器外壳中打开该 URL。如何让它在另一个浏览器中打开?
到目前为止我已经尝试过的:
目标_空白,
目标系统,
“外部:https ://somelink.com ”
以下代码段也不起作用:
openlLink = (link) =>{
window.open(link,'My Page',500,500);
}
期望的结果是在任何其他独立浏览器中打开链接,而不是 web 视图。
解决方案
你是如何配置你的manifest.json
?
您的应用导航方式取决于您在 Web 应用清单中定义的范围。来自谷歌开发者文档:
范围定义浏览器认为在您的应用程序中的 URL 集,并用于决定用户何时离开应用程序。范围控制包含 Web 应用程序中所有入口和出口点的 URL 结构。您的 start_url 必须位于范围内
注意:如果用户单击应用程序中导航到范围之外的链接,该链接将在现有 PWA 窗口中打开并呈现。如果您希望链接在浏览器选项卡中打开,则必须将 target="_blank" 添加到标签中。在 Android 上,带有 target="_blank" 的链接将在 Chrome 自定义选项卡中打开。
因此,我会检查您的网络清单并使用 target="_blank" 作为外部链接。
更新
我写了一系列关于 PWA 的文章。这篇文章专门讨论了 Web 应用清单以及如何在用户的主屏幕上安装 PWA。
否则,一个可能的例子可能是:
{
"name": "My PWA",
"start_url": "/myApp/?source=pwa",
"scope": "/myApp/",
"display": "standalone"
}
下的路线:myWebSite/myApp/...
将在您的 PWA 范围内,而:myWebSite/admin/...
将在它之外。
推荐阅读
- reactjs - 我可以在依赖数组中使用动态属性来实现 useEffect 吗?
- java - 在 Netbeans 中连接天蓝色数据库的 Java 程序出现错误
- .net - 将大型 vb.net 应用程序从 3.5 移动到 4.5 .net
- python - 在做 scipy.signal.spectrogram 时,我怎么知道会有多少时间段?
- r - 根据两列中的数据转置数据框中的值
- mysql - 无法在 Ubuntu 18.04.4 LTS 中安装 MySQL
- c# - Xamarin 表单 - 网址未在 Webview 中显示
- varnish - 如何以 varnishncsa 客户端模式日志格式记录后端?
- html - 如何在不匹配属性名称的情况下在选择中使用对象子作为值
- c# - 将二进制文件从 MemoryStream 保存到网络路径会间歇性地保存 0 字节文件