После нажатия кнопки Hangout gapi.hangout.getStartData() возвращает null

Использование Hangout API. Я интегрировал кнопку видеовстречи и передал параметры, используя

  gapi.hangout.render('placeholder-div1', {
    'render': 'createhangout',
    'hangout_type': 'onair',
    'initial_apps': [{
    'app_id': '1234566', //renders intially hangout app when hangout starts
    'start_data': "654321", //reference  which is present on the page 
    'app_type': 'ROOM_APP'
        }]
     </code>
  // on my xml the script code is:
   <code> 
     function init() {
     // When API is ready...
    gapi.hangout.onApiReady.add(
    function(eventObj) {
    document.getElementById('showParticipants')
        .style.visibility = 'visible';
        startup();
   });
  }
 function startup(){
 try{
  gapi.hangout.onair.onYouTubeLiveIdReady.add(function(liveId){
    var id = gapi.hangout.onair.getYouTubeLiveId();
    var Id= gapi.hangout.getStartData(); //here Id is null
  }
}

Раньше, когда я использовал gapi.hangout.getStartData(). Я получил параметры «start_data» из моих «initial_apps». Я думаю, что интерфейс Hangout изменился. и теперь gapi.hangout.getstartData() получает нулевое значение.

Я не знаю, что не так. Пожалуйста, предложите мне лучшее решение.


person sitaram9292    schedule 07.11.2014    source источник


Ответы (1)


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

От

https://developers.google.com/+/hangouts/api/gapi.hangout#gapi.hangout.getStartData

getStartData() — получает начальные данные для текущего активного приложения. Это данные, передаваемые параметром gd URL (также доступны с gadgets.views.getParams). Возвращает null, если не указаны начальные данные.

Попробуйте использовать gadgets.views.getParams и посмотрите, сохраняется ли проблема.

Обновление. Попробуйте получить start_data вручную.

Добавьте следующий скрипт, чтобы получить параметры запроса

<script>
var qs = (function(a) {
if (a == "") return {};
var b = {};
for (var i = 0; i < a.length; ++i)
{
    var p=a[i].split('=', 2);
    if (p.length == 1)
        b[p[0]] = "";
    else
        b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "));
}
return b;
})(window.location.search.substr(1).split('&'));

And then use the following to get the start data which is passed as gd query parameter

var hangoutstartdata = qs["gd"]
person New to Rails    schedule 12.11.2014
comment
Да, я пытался использовать gadgets.views.getParams, но это не сработало. Приложение загружалось без проблем, но я не могу получить значение start_data. - person sitaram9292; 13.11.2014
comment
@sitaram9292 sitaram9292 попробуйте поместить свои начальные данные в одинарные кавычки 'start_data': '654321' - person New to Rails; 13.11.2014
comment
Да, это было в одинарных кавычках в моем рабочем коде. Проблема в том, что я не могу получить параметры, которые я отправляю из своего приложения. - person sitaram9292; 13.11.2014
comment
где вы передали параметр запроса gd - person sitaram9292; 13.11.2014
comment
@ sitaram9292 Ваши start_data будут получены как параметр gd - person New to Rails; 13.11.2014
comment
Вы видели новые изменения интерфейса, внесенные в видеовстречу, где нам нужно поделиться видео, а затем нам снова нужно нажать кнопку «Пуск», чтобы поделиться видео, я думаю, что в промежутке между процессами нам не хватает значений start_data - person sitaram9292; 13.11.2014
comment
Теперь я могу получить start_data с помощью gapi.hangout.getStartData(). Так как тусовка поменяла свой интерфейс на старый. Большое всем спасибо за помощь, я думаю, что проблема вернется, когда видеовстреча снова изменит свой интерфейс. - person sitaram9292; 14.11.2014
comment
@sitaram9292 Хорошо. Возможно, тестируются какие-то функции. - person New to Rails; 14.11.2014
comment
этот трюк не работал для нас. При ближайшем рассмотрении становится ясно, что gd не определено. Но мы пытаемся запустить наше пользовательское приложение после начала видеовстречи. Я постараюсь опубликовать больше, как только мы настроим наше приложение как одно из значений по умолчанию в app_id. Подозреваю, что это решит проблему. - person mr rogers; 20.06.2015