Функциональность плагинов Wordpress работает нормально на рабочем столе, но не работает должным образом на мобильных устройствах. Зачем? - PullRequest
0 голосов
/ 02 мая 2018

Я создал плагины / шорткод Wordpress Accent (текст-в-речь) для нашего сайта WordPress (https // speaktoday.com). Его функциональность отлично работает на рабочем столе, но всякий раз, когда я откройте это мобильное приложение, показывающее всплывающее окно «speaktoday.com хочет использовать речь (запретить и разрешить)». Кроме того, его функциональность (текст в речь) не работает в мобильном телефоне. И я не хочу показывать это всплывающее сообщение при открытии моего веб-сайта на мобильном устройстве, а также то, что функциональность плагина должна работать и на мобильном устройстве. Пожалуйста, дайте мне правильное решение для этого.

Вот мой код:

    <?php
/** Plugin Name: SpeakToday_Accent
    Description: This plugin is used to select preferred accent
    Author: Amit  Singh
    Version: 1.0
    link : https://speaktoday.com

*/
add_shortcode( 'TTSdefault', 'voice_counter' );
function voice_counter($att,$content){
    $att = shortcode_atts(array('lang' => ''),$att);
    $languageVal = $att['lang'];
    //echo "<h2>".$languageVal."</h2>";

?>

<script src="https://code.responsivevoice.org/responsivevoice.js"></script>
<script src="//code.responsivevoice.org/1.5.6/responsivevoice.js"></script>

<script>
setTimeout(responsiveVoice.speak("",$('#voiceselection').val()),15000);
</script>
<script>



function getSelectionText() {
    var text = "";
    if (window.getSelection) {
        text = window.getSelection().toString();

    } else if (document.selection && document.selection.type != "Control") { 
        text = document.selection.createRange().text;
    }
    return text;
}
$(document).ready(function (){ 
   $(document).mouseup(function (e){ 
      setTimeout(function() { 
         responsiveVoice.cancel(); 
         var text = $('#voiceselection').val();
          responsiveVoice.speak(getSelectionText(), text ); 

      }, 1);
   });
});
</script>
<div class = "speaktoday_accent" style="background:white;width:155px; position: relative !important;transform: none !important; display: inline-block;">
 <select id="voiceselection" style="width:155;line-height:2;">
  <option value="UK English Female">UK English Female</option>
    <option value="US English Female">US English Female</option>
    <option value="Hindi Female">Hindi Female</option>
    <option value="UK English Male">UK English Male</option>
    <option value="US English Male">US English Male</option>
     </select>
</div>

<script>
    var spge = <?php echo json_encode($languageVal); ?>;
    //alert(spge);
         $("#voiceselection").on('change', function () {
             window.localStorage.setItem("voiceselection", this.value);
        });
        $(document).ready(function () {
            var n = sessionStorage.getItem('on_load_counter');
             if (n === null) {
             n = 0;
             }
              n++;
            sessionStorage.setItem("on_load_counter", n);

            if(n>1){
                 $("#voiceselection").val(window.localStorage.getItem("voiceselection"));
                $('select option[value="voiceselection"]').attr("selected",true);
            }
            else{

                //alert(spge);
            // $("#voiceselection").val(window.localStorage.getItem("voiceselection"));

            //alert(spge);
            $("#voiceselection").val(spge).change();
                //$('select option[value="UK English Female"]').attr("selected",true);
            }

            //alert(n);
        });
</script>


<?php

}

пожалуйста, помогите мне решить эти проблемы. Вы можете посетить https://speaktoday.com, чтобы увидеть эти плагины. При прокрутке вниз вы увидите раскрывающийся список выбора языка.

Заранее спасибо

1 Ответ

0 голосов
/ 02 мая 2018

К сожалению, не существует способа разрешить использование оборудования вашего устройства. Представьте, что любой сайт может просто слушать микрофон без согласия. Скорее всего, вы разрешили разрешение на рабочем столе (и запомнили его).

Также на мобильном устройстве нет события mouseup. Попробуйте использовать событие blur или выберите время отмены с change.

...