2017-02-10 16 views
3

Я использую webview в своем чате для Facebook Messenger для оплаты, и MessengerExtensions.requestCloseBrowser должен закрыть окно webview и вернуть пользователя обратно в поток чата, но он не " т работы. Документы говорят, что это работает, и я пытался сделать то, что они сказали; видимо, я что-то упускаю. Кто-нибудь видит, что мне здесь не хватает?MessengerExtensions.requestCloseBrowser, похоже, не работает

Я размещаю webview в приложении 4.2 rails 4.2, поэтому js находится в отдельном файле. Я использую jquery для обработки события. Вот код:

кнопку в окне, которое должно вызывать действие (используя тонкий): button type="button" class="chat-button" id="closeButton" Done!

.js файл:

$(function(d, s, id){ 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.com/en_US/messenger.Extensions.js"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'Messenger')); 

$(function() { 
    $("#closeButton").click(function() { 
    alert("hit me"); 
    MessengerExtensions.requestCloseBrowser(
     function success() {}, 
     function error(err) { 
     alert(err) 
     } 
    ); 
    return false; 
    }); 
}); 

window.extAsyncInit = function() { 
    alert("js sdk finished loading"); 
}; 

Обратите внимание, что оба предупреждения делают огонь, один когда загружается sdk, и один, когда нажимается кнопка. Но веб-просмотр не закрывается, как рекламируется. BTW - возвращается ошибка 2071010. Что мне не хватает?

+0

Я слышал от другого пользователя, что это работает для них. У меня должно быть что-то в моей среде, что мешает этому работать. – barnard

+0

работает только на Android и iOS. Кроме того, версия iOS для приложения для мессенджеров должна быть последней, или это может не работать и на iOS. – TBE

ответ

0

Я зарегистрировал проблему с Facebook, и они только что решили еще одну проблему, которая разрешила эту проблему. Новая версия Messenger на IOS и мой код неожиданно работали как рекламируемые. Спасибо всем за ваш интерес.

1

messenger_extensions должно быть установлено равным true.

"attachment": { 
    "type": "template", 
    "payload": { 
     "template_type": "button", 
     "text": "Check this out!", 
     "buttons": [ 
      { 
       "type": "web_url", 
       "url": "https://yourpage.com", 
       "title": "Some Title", 
       "webview_height_ratio": "compact", 
       "messenger_extensions": true 
      } 
     ] 
    } 
} 
+0

Действительно ли это работает в вашем коде? Я получаю эту ошибку, когда добавляю поле 'whitelisted_domains' к кнопке a: ' '' OAuth 'Платформа Facebook "invalid_request" "(# 100) Недействительные ключи \\" whitelisted_domains \\ "были найдены в параметре \ \ "name_placeholder [buttons] [0]' '' – AndreasPizsa

+0

Таким образом, удаление 'whitelisted_domains' работает и добавление' messenger_extensions' определенно помогает тоже;) Я добавил 'messenger_extensions' через [API профиля Messenger] (https: // developers.facebook.com/docs/messenger-platform/reference/messenger-profile-api/domain-whitelisting/), и теперь все работает так, как ожидалось. – AndreasPizsa

+0

Вы правы ... Я сделал обновление кода, который еще не распространялся, когда я его протестировал. Командная строка - это способ перехода в белый список, чтобы войти в настройки в Facebook. Исходный пример, который был у меня с белым списком в конфигурации кнопок, приводит к его разрыву. Я обновил этот пример. –

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

  • Нет связанных вопросов^_^