0

У меня есть приложение Android Phone Gap, в котором используется Facebook JS SDK для создания диалогового окна для обмена Facebook. Я тестировал 3 устройства. Он работает отлично на одном устройстве, но другие два не дают никаких результатов. Когда я нажимаю кнопку совместного доступа, он ничего не делает.Диалог с FB Share не работает на некоторых устройствах

Мне удалось определить, что FB.getLoginStatus возвращает «неизвестный» на устройствах, которые не работают. Тем не менее, я вошел в FB через диалоговое окно входа в приложение. Рабочее устройство правильно возвращает «подключено».

Кроме того, функции Like и Comment отлично работают на всех устройствах.

устройства работают нормально

Nexus 7 - 5.1.1 (пользователь фб является администратор приложения FB)

Devices диалог Доля:

Galaxy Trend - 4.0.4 (пользователь ФБ админ или разработчик приложения FB)

Lenovo Tablet - 4.1.2 (пользователь фб не имеет никакой связи с приложением FB)

приложение FB не в песочнице, он жив.

Вот моя доля.

function sharepost(link,picture,name,description,post_type,page_name){ 

      var description_unes = unescape(description); 
      FB.getLoginStatus(function(response) { 

       if (response.status == 'connected') { 

        var obj = { 
         method: 'feed', 
         link: link, 
         picture: "http://example.com/fb.php?u=hsttps://fbexternal-a.akamaihd.net/safe_image.php?d=AQDQXWajSt1TJxUz&url="+picture, //full_picture 
         name: name, 
         description: description_unes 
        }; 
        FB.ui(
         obj, 
         function(response) { 
          if (response && !response.error_code) { 
           alert('Posting completed.'); 
          } else { 
           alert('Error while posting.'); 
          } 
         } 
        ); 
       } 
      }); 
     } 

Любой столкнулся с подобной ситуацией, когда поведение различается на основе мобильного устройства (или я думаю андроид версию SDK?). спасибо большое

ОБНОВЛЕНИЕ: Я читал здесь FB.getLoginStatus() return "unknown" in Firefox when user is logged, что в браузере это связано с сторонними кукисами, но как это может быть, когда это приложение для Android. Когда я получаю аутентификацию в приложении, статус «подключен», но затем, когда я общаюсь, статус становится «неизвестным».

ответ

0

Выяснил свой вопрос :). Оказывается, мне нужно добавить параметр «true» в FB.getLoginStatus(), чтобы принудительно совершить обратный переход на сервер FB и получить правильный статус. Честно говоря, я не знаю, почему это было бы так, поскольку статус должен был быть кеширован (если кто-нибудь знает, пожалуйста, поделитесь). Возможно, лучшим решением было бы установить статус: true в вызове FB.init, а затем подписаться на auth.statusChange (еще не протестировал это.

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