2015-08-12 3 views
1

Я пытаюсь перенаправить пользователя моего мобильного веб-браузера на использование Chrome, а не Safari. Я пробовал использовать следующее:Перенаправление Safari на Chrome

<script> 
javascript:location.href="googlechrome"+location.href.substring(4); 
</script> 

Однако это постоянно открывает вкладки в Chrome в цикле. Знаете ли вы, как я могу это сделать?

Приветствия, Дара

+2

Что же вы ожидали от этого? Вы устанавливаете href каждый раз, когда загружается страница, что наверняка создаст бесконечный цикл. – Teemu

ответ

1

Ну, причина довольно очевидна; Chrome также предлагает открыть Chrome. Вы просто хотите, чтобы userAgent был условным.

if (navigator.userAgent.indexOf("CriOS") == -1) { 
    location.href="googlechrome"+location.href.substring(4); 
} 

Я бы на моем стандартном разглагольствования о проверке агента пользователя был плох, но я верю, что вы говорите об этом быть частным WebApp. Так как iOS не позволяет вам менять браузер по умолчанию, я думаю, что это хороший способ обхода.

+0

Именно поэтому я пытаюсь получить обходное решение из-за того, что iOS вынуждает вас использовать Safari. К сожалению, этот скрипт все еще вызывает цикл :( –

+0

@DaraG Извините, я думал, что Chrome - это строка подписи в сафарике iOS. Я только что редактировал свой пост. Попробуйте сейчас (у меня нет iPhone для тестирования, так что это на вас) – Katana314

+0

Это прекрасно работает сейчас. Большое вам спасибо! :) Я очень ценю это. –

4

Это приведет к тому, чтобы открыть страницу каждый раз, когда веб-страница загружается, независимо, если вы находитесь в Safari или Chrome. Это также очень плохой пользовательский опыт, чтобы просто перенаправить пользователя в другой браузер без их ввода.

Было бы лучше, если бы у вас был какой-то способ открыть ваш сайт в Chrome, а также получить объяснение, почему оно необходимо.

Существуют и другие схемы https и обратные вызовы: https://developer.chrome.com/multidevice/ios/links#uri_schemes

<p>This webapp is best viewed in Google Chrome</p> 
<button type="button" onclick="openInChrome()">Open in Chrome</button> 
<script> 
    var openInChrome = function() { 
     if (/^((?!Chrome).)*(Safari)+.*$/.test(navigator.userAgent)) { 
      var protocol = location.href.substring(0,location.href.indexOf(':')); 
      var url = location.href.substring(location.href.indexOf(':')); 

      if (protocol === "http") { 
       location.href = "googlechrome" + url; 
      } 
      else { 
       location.href = "googlechromes" + url; 
      } 
     } 
    } 
</script> 

Edit:

Добавлена ​​проверка по проверке они находятся в Safari.

+0

Извините, я должен был указать больше, это частный webapp, и все пользователи хотят его в Chrome, а не в Safari. Поэтому я попытался настроить его автоматически. –

Смежные вопросы