如何强制通过电子邮件发送的链接在用户浏览器而不是 gmail 应用内浏览器中打开
How to force links sent by email to open in user's browser instead of gmail in-app browser
我有一个网站 JavaScript-繁重,需要用户录制他们的视频,当我向我的客户发送电子邮件时,link 在 gmail 的应用程序内浏览器中打开,您无法记录自,而且还缺少很多功能。
当用户点击电子邮件中的 links 到他们想要的 select 任何浏览器而不是 gmail 的应用程序内浏览器时,如何触发弹出窗口?我已经看到有人这样做了,我尝试并为此做了一些研究,但没有结果。
默认情况下,网络浏览器无法打开竞争对手的网络浏览器。这将是一个安全风险。有涉及用户下载附加组件或扩展程序的黑客攻击。请参阅 whosebug.com/questions/10070744/open-ie-browser-in-firefox-chrome-page
中的答案
您提到的弹出窗口很可能是应用程序。用户必须授予权限。 (这个我没有经验)。
似乎无法以编程方式强制 Android 上的电子邮件在 Chrome 浏览器中打开。用户必须更改他们的系统设置。因此,另一种方法可能是教育用户(关于功能的丧失)。这可以通过执行浏览器嗅探并在网页顶部显示适当的消息来完成。
使用 JavaScript,您可以通过创建函数来测试某个函数是否受支持和启用。下面是一个示例,它确定 LocalStorage 是否可用。 (仅供参考)。
function isLocalStorageEnabled(){
var test = 'test';
try {
localStorage.setItem(test, test);
localStorage.removeItem(test);
return true;
} catch(e) {
return false;
}
}
if(isLocalStorageEnabled() === true){
// available
}else{
// unavailable
}
此外,我认为没有单一的方法可以检测用户是否使用 Gmails 内置浏览器或 Chrome。但是,根据以下因素,您可以假设他们在使用 Gmail,如果:
- 用户点击了电子邮件 link。 (您可以附加一个查询字符串。在登陆网站时,存储在会话中并在不附加查询字符串的情况下重定向)。
- 用户在 android
(/Android/.test(window.navigator.userAgent))
.
- 用户在 Chrome(查看答案 whosebug.com/questions/4565112/javascript-how-to-find-out-if-the-user-browser-is-chrome/13348618#13348618)。
- Web 浏览器不支持某种 JavaScript 功能,该功能适用于 Chrome 但不适用于 Gmails 浏览器。
如果所有条件都为真,那么您可以显示如下消息:For full functionality, please use Chrome or alternatively in Gmail: Go to Settings, General, and uncheck the option to open links in gmail (and reopen link from Gmail)
.
注意:浏览器检测可以伪造。然而,这对于显示消息应该没问题。
将 Gmail(或任何应用)WebView 中的 link 发送到系统处理程序的选项是为应用本身保留的。
此处描述了应用程序的实现:
WebView link click open default browser
但是,如果您指示收件人在电子邮件中长按 link,则可以选择在浏览器中打开 link,这会将他们带到默认浏览器。
我有一个网站 JavaScript-繁重,需要用户录制他们的视频,当我向我的客户发送电子邮件时,link 在 gmail 的应用程序内浏览器中打开,您无法记录自,而且还缺少很多功能。
当用户点击电子邮件中的 links 到他们想要的 select 任何浏览器而不是 gmail 的应用程序内浏览器时,如何触发弹出窗口?我已经看到有人这样做了,我尝试并为此做了一些研究,但没有结果。
默认情况下,网络浏览器无法打开竞争对手的网络浏览器。这将是一个安全风险。有涉及用户下载附加组件或扩展程序的黑客攻击。请参阅 whosebug.com/questions/10070744/open-ie-browser-in-firefox-chrome-page
中的答案您提到的弹出窗口很可能是应用程序。用户必须授予权限。 (这个我没有经验)。
似乎无法以编程方式强制 Android 上的电子邮件在 Chrome 浏览器中打开。用户必须更改他们的系统设置。因此,另一种方法可能是教育用户(关于功能的丧失)。这可以通过执行浏览器嗅探并在网页顶部显示适当的消息来完成。
使用 JavaScript,您可以通过创建函数来测试某个函数是否受支持和启用。下面是一个示例,它确定 LocalStorage 是否可用。 (仅供参考)。
function isLocalStorageEnabled(){
var test = 'test';
try {
localStorage.setItem(test, test);
localStorage.removeItem(test);
return true;
} catch(e) {
return false;
}
}
if(isLocalStorageEnabled() === true){
// available
}else{
// unavailable
}
此外,我认为没有单一的方法可以检测用户是否使用 Gmails 内置浏览器或 Chrome。但是,根据以下因素,您可以假设他们在使用 Gmail,如果:
- 用户点击了电子邮件 link。 (您可以附加一个查询字符串。在登陆网站时,存储在会话中并在不附加查询字符串的情况下重定向)。
- 用户在 android
(/Android/.test(window.navigator.userAgent))
. - 用户在 Chrome(查看答案 whosebug.com/questions/4565112/javascript-how-to-find-out-if-the-user-browser-is-chrome/13348618#13348618)。
- Web 浏览器不支持某种 JavaScript 功能,该功能适用于 Chrome 但不适用于 Gmails 浏览器。
如果所有条件都为真,那么您可以显示如下消息:For full functionality, please use Chrome or alternatively in Gmail: Go to Settings, General, and uncheck the option to open links in gmail (and reopen link from Gmail)
.
注意:浏览器检测可以伪造。然而,这对于显示消息应该没问题。
将 Gmail(或任何应用)WebView 中的 link 发送到系统处理程序的选项是为应用本身保留的。
此处描述了应用程序的实现:
WebView link click open default browser
但是,如果您指示收件人在电子邮件中长按 link,则可以选择在浏览器中打开 link,这会将他们带到默认浏览器。