Проблема в том, что facebookConnectPlugin доступен только в v0.5.1 плагина, и мы запускали v0.4.0 при сборке с помощью сборки PhoneGap, случайно установив v0.5.1 локально.
Большая путаница прояснила:
- Последняя версия плагина - 0.5.1, и это то, что мы установили локально.
- Сборка PhoneGap имеет только до 0.4.0
- Документ ссылается на код / дерево по адресу 962eb0a1c07935ff813e28aa9eaa5581f2e10416 вместо тега 0.4.0 - было неясно, что это такие же
- Между 0.4.0 и 0.5.1 способ встраивания и использования плагина кардинально изменился.
Версия 0.4.0:
Вы должны включить в свой html следующее, чтобы он работал на вашем устройстве:
<script src="cdv-plugin-fb-connect.js"></script>
<script src="facebook-js-sdk.js"></script>
Если у вас есть кодовая база, которая предназначена как для PhoneGap, так и в виде веб-приложения в браузере, обязательно включайте только вышеперечисленное при создании для PhoneGap. Чтобы заставить его работать при запуске веб-страницы как обычной веб-страницы, следуйте обычным инструкциям Facebook JS SDK от Facebook. Запустите этот код в if (!window.cordova) {}
.
Пример использования:
if (typeof CDV === 'undefined') {
alert('CDV variable does not exist. Check that you have included cdv-plugin-fb-connect.js correctly');
}
if (typeof FB === 'undefined') {
alert('FB variable does not exist. Check that you have included the Facebook JS SDK file.');
}
// Initialize the Facebook SDK
FB.init({
appId: 'yourappid',
nativeInterface: CDV.FB,
useCachedDialogs: false
});
FB.getLoginStatus(handleStatusChange);
Где handleStatusChange
- это обратный вызов, который получает информацию о том, вошел ли пользователь в систему или нет.
Чтобы запросить логин, используйте FB.login () согласно официальной документации. Очень полезны примеры в дереве 0.4.0: https://github.com/phonegap-build/FacebookConnect/tree/962eb0a1c07935ff813e28aa9eaa5581f2e10416/example
Версия 0.5.1:
Плагин предоставляет window.facebookConnectPlugin при запуске на устройстве без необходимости вручную включать какие-либо js. Вы должны скопировать https://github.com/phonegap/phonegap-facebook-plugin/blob/master/www/js/facebookConnectPlugin.js в свой проект и включите его в свой html, чтобы получить аналогичный API при запуске веб-страницы в качестве обычного страница в Интернете.
Пример использования:
var fbLoginSuccess = function (userData) {
alert("UserInfo: " + JSON.stringify(userData));
}
facebookConnectPlugin.login(["basic_info"],
fbLoginSuccess,
function (error) { alert("" + error) }
);
PS Некоторые советы по отладке сборок PhoneGap:
- Используйте журнал консоли в XCode Organizer, чтобы устройство увидело вывод в console.log () в коде PhoneGap (выводит сообщения только после того, как устройство готово)
- Используйте блоки try / catch в JavaScript, чтобы отловить и увидеть ошибки js в коде.
Чтобы установить v0.4.0 локально:
cd ~/tmp/
wget https://github.com/phonegap/phonegap-facebook-plugin/archive/0.4.0.tar.gz --no-check-certificate
tar -xvf 0.4.0.tar.gz
cordova plugin add ~/tmp/phonegap-facebook-plugin-0.4.0/ --variable APP_ID="yourfbappid" --variable APP_NAME="fb app name"
person
Motin
schedule
11.07.2014