AnswerBun.com

How to force links sent by email to open in user's browser instead of gmail in-app browser

I have a website that is JavaScript-heavy and requires user to record their videos, When I send my emails to my customers the link opens in gmail’s in-app browser which you cannot record from, Plus there’s many functionalities missing.

How to trigger a popup when user clicks the links in the email to select whatever browser they wants instead of gmail’s in-app one? I’ve seen some people do that I tried and did some research for it but not results.

Stack Overflow Asked by MMJ on July 22, 2020

2 Answers

2 Answers

The option to send links in the Gmail (or any app) WebView to the system handler is reserved for the app itself.

The implementation for apps is described here:

WKWebView open links from certain domain in safari

WebView link click open default browser

However, if you instruct the recipient to long press the link in the email, there is an option to open the link in browser and that will take them to the default browser.

Answered by NewEndian on July 22, 2020

By default a web browsers cannot open a rival's web browser. This would be a security risk. There are hacks which involve the user downloading an add-on or extension. See answer in stackoverflow.com/questions/10070744/open-ie-browser-in-firefox-chrome-page

The popup you're referring to are most likely apps. The user would have to granted permission. (This I don't have experience with).

It looks like there is no way to programmatically force emails on Android to open in Chrome browser. The user has to alter their system settings. Therefore, an alternative approach may be to educate the user (about the loss of functionality). This can be done by preforming browser sniffing & displaying an appropriate message at the top of the webpage.

With JavaScript, you can test if a function is supported & enabled by creating functions. Below is an example, which determine is LocalStorage is available. (It's only for illustration purposes).

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
}

Also I believe there is no single way to detect if the user, is using Gmails built-in browser or Chrome. However based on the following factors, you can assume they're using Gmail if:

If all criteria are true, then you can then display a message like: 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).

Note: browser detection can be faked. However this should be fine for displaying messages.

Answered by Greg on July 22, 2020

Add your own answers!

Related Questions

Serialise array as single XML element in C#

1  Asked on January 25, 2021 by david-poxon

   

How to Create a Function to extract data from a JSON file

1  Asked on January 25, 2021 by ineedhelp

 

SQL create aggregated result from 2 queries

2  Asked on January 25, 2021 by sudhishkr

         

Mongoose : find document with subdocument filter

1  Asked on January 25, 2021 by temp_user

     

problems with @binding between structs

1  Asked on January 24, 2021 by mateus-neves

 

Testing Saga using Jest that have other module dependencies

0  Asked on January 24, 2021 by mzafer

   

mysql join 3 table but the “COUNT” be duplicate

1  Asked on January 24, 2021 by faisal-budiman

         

FTPS failing, but only on some commands on some machines

1  Asked on January 24, 2021 by watyf

         

Differently displayed colors on chart.js

3  Asked on January 24, 2021 by leos-literak

     

Vue Js Dynamic Class Binding Not Updating

2  Asked on January 24, 2021 by niall-parker

   

Ask a Question

Get help from others!

© 2022 AnswerBun.com. All rights reserved.