Opera Mini Browser Detection à l'aide de Javascript

J'ai écrit un code javascript pour mon site Web pour détecter s'il fonctionne sur un navigateur Opera Mini sur les appareils mobiles. Étant donné que Opera Mini dispose d'une fonction de sauvegarde de données, lorsqu'il est activé, il ne charge parfois pas correctement le site, donc je souhaite afficher un message en détectant si le navigateur utilisé est Opera Mini.

Le code affiché ci-dessous fonctionne parfaitement pour Opera Mini sur iOS, mais cela ne fonctionne pas sur Android. Des suggestions pour que le code fonctionne également pour Opera Mini sur Android?

<script type="text/javascript"> function o(){ var isMobile = { Opera: function() { return navigator.userAgent.match(/Opera Mini/i); }, }; if( isMobile.Opera() ) alert('If you are using Opera Mini please disable Data Savings Mode to Have a pleasant browsing experience :)'); } window.onload = o; </script> 

Jamais entendu parler d'Opera Mini, mais j'ai google pour ça et j'ai trouvé https://dev.opera.com/articles/opera-mini-and-javascript/ . Fondamentalement, elle utilise la chaîne de l'agent utilisateur pour déterminer si c'est l'opéra mini par

 var isOperaMini = (navigator.userAgent.indexOf('Opera Mini') > -1); 

Qui est très similaire à votre méthode.

Cependant, elle suggère également que vous pouvez utiliser l'objet fenêtre pour déterminer cela. "Opera Mini comprend également un objet operamini comme propriété de l'objet fenêtre. Pour vérifier la présence de cet objet, utilisez le code suivant."

 var isOperaMini = Object.prototype.toString.call(window.operamini) === "[object OperaMini]" 

Si vous ne pouvez toujours pas le faire fonctionner, je proposerais une autre approche à ce sujet. Approchez ce problème en essayant de sauvegarder à l'aide de la fonction de sauvegarde, et si cela échoue, utilisez la fonction de sauvegarde que vous souhaitez utiliser. Par conséquent, chaque fois qu'il est opéra mini, il pourrait utiliser la fonction de sauvegarde de données, mais quand il ne s'agit pas d'opéra mini, il utilisera la fonction alternative. Pensez à un essai / capture ici. Bien sûr, vous voudriez considérer la mise en œuvre lors de la récupération des données enregistrées.