2017-01-13 7 views
2

На ResponsiveVoice.JS website в разделе причуды говорится:ResponsiveVoice.js - Двигаясь IOS TTS Необходимого Прямого взаимодействия с пользователем

IOS TTS не может быть запущен без прямого взаимодействия с пользователем, ResponsiveVoice JS сопоставляет это

Но, для жизни меня, я не могу обойти это требование прямого взаимодействия с пользователем. Как вам обойти это?

Вот фрагмент кода я пытаюсь выполнить без взаимодействия с пользователем, я в настоящее время уже находится в <head> элемента:

<script src="http://code.responsivevoice.org/responsivevoice.js"></script> 
<script type="text/javascript"> 
    function speak_static_data(){ 
     responsiveVoice.speak('Test'); 
    } 
    setTimeout(function(){ speak_static_data(); }, 3000); 
</script> 

Я хотел бы назвать responsiveVoice.speak('Test'); на странице загрузки в прошивкой без прямого взаимодействия с пользователем , Как мне это сделать?

Этот же фрагмент кода отлично работает на Android/Safari на рабочем столе/Chrome на рабочем столе, но не в iOS.

ответ

0

Так что я искал для этого и скрыл в своих FAQ, что у них есть рекомендации iOS. Они не полностью обходят его, но вместо этого обходят его все время после первого инстанса.

На iOS некоторые события, такие как синтез речи, должны запускаться из действия пользователя (то есть щелчка). Это приводит к тому, что ResponsiveVoice говорит, что вызовы не работают на загрузку страницы, например.

С синтезом речи, это действие, вызванное пользователем, необходимо выполнить только один раз. Дальнейшие прямые вызовы после первого будут работать, как ожидалось.

Итак, рекомендуемая рекомендация - добавить кнопку «Пуск» к опыту пользователя щелкнуть и использовать это как вызов инициализации для реагированияVoice.speak(). Этот вызов, при желании, может содержать пробел в виде текста, поэтому для пользователя нет никакого влияния.

Вам не нужно на самом деле ничего говорить, поэтому с кнопкой, которую пользователь просто нажимает на вызывающий отзыв, достаточно.

<button onclick="responsiveVoice.speak('');">Enable Voice</button> 

Responsve Voice FAQ: https://responsivevoice.org/faq/