Требование:
Я пытаюсь создать мобильное приложение с использованием Ionic, Apache Cordova, Angular Js и Parse. Одна из функций приложения is- предполагает, что пользователь может войти в систему с помощью Facebook (либо с помощью собственного приложения, либо на основе браузера). Пользователь будет нажимать кнопку "Войти с Facebook" на странице "Вход", и предполагается, что вы откроете либо собственное приложение Facebook (если установлено), либо браузер, чтобы перенаправить на страницу входа в систему Facebook для аутентификации. После аутентификации пользователь должен иметь возможность выполнять дальнейшие действия в приложении.
Проблема. Я получаю следующую ошибку при нажатии кнопки "Войти с Facebook" в моем приложении в симуляторе Xcode.
ReferenceError: Не удается найти переменную: facebookConnectPlugin
Что я сделал до сих пор?
1) Созданы необходимые файлы HTML с кнопкой входа, угловыми контроллерами js и службами для потока аутентификации.
2) Следуйте инструкциям, указанным в ссылке ниже, для части аутентификации Facebook.
https://ionicthemes.com/tutorials/about/native-facebook-login-with-ionic-framework
3) Основываясь на вышеуказанной статье, клонировал плагин в локальный каталог, а затем установил плагин в каталог приложения с помощью команды cordova. Согласно статье, я получил плагин из этого URL-адреса git. https://github.com/Wizcorp/phonegap-facebook-plugin
4) Установка плагина кажется успешной. Не было никаких ошибок в терминале. Я также вижу папку с плагином, но у нее, похоже, есть папка с именем "phonegap-facebook-plugin" вместо com.phonegap.plugins.facebookconnect. См. Комментарии в этой статье, если вы не можете понять, что я имею в виду. Не уверен, что это имеет какое-то отношение к моей проблеме.
5) Создайте приложение, используя команду ionic build ios.
6) Открыл папку xcodeproj внутри платформы /ios в Xcode и запускал приложение на симуляторе Xcode.
7) Когда я нажимаю кнопку "Войти с Facebook", я получаю "Не могу найти переменную: facebookConnectPlugin", как упоминалось в разделе вопросов выше.
8) Добавлен следующий код в методе run в app.js.I удалил фактический parseid, fbids из кода ниже для этого сообщения.
myApp.run(function ($ionicPlatform,$rootScope,$state) {
$ionicPlatform.ready(function () {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if (window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if (window.StatusBar) {
StatusBar.styleDefault();
}
Parse.initialize("parseappid", "parsejskey");
if (!(ionic.Platform.isIOS() || ionic.Platform.isAndroid())) {
window.fbAsyncInit = function () {
Parse.FacebookUtils.init({
appId: 'fbappid',
version: 'v2.5',
xfbml: true
});
};
(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.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
} (document, 'script', 'facebook-jssdk'));
}
});
9) Добавлено следующее после тела в файле index.html.
<div id = "fb-root"> </div>
10) Я даже попытался вручную добавить ссылку на facebookConnectPlugin.js (которая была установлена как часть установки плагина), скопировав этот файл js из каталога плагинов в каталог js (www\js), как некоторые статьи, предлагаемые в Интернете, но ничего похоже, заставляют его работать.
Смятения у меня есть?
1) Нужно ли мне также ссылаться на cordova.js в моем index.html? Я только ссылался на ng-cordova.js. 2) Предполагается ли facebookConnectPlugin работать в симуляторе Xcode?
Dev Environment Я использую
Mac OS X Yesomite, код Visual Studio, Safari/Chrome, Xcode (v7.1.1)
В основном тестирование с использованием симулятора Xcode и от Safari Develop
Я застрял в подобной ситуации, но я могу перенаправить пользователя на страницу входа. Я не знаю, поможет ли это вам, но вы посмотрите.
См. " Google Firebase": обращайтесь к социальному логину для получения дополнительной информации об этом.
Я знаю это от парней Firebase, но в этой статье есть одно очень важное предложение:
Лучший способ создать гибридное приложение - как можно меньше разобраться с основными деталями Кордовы. Для этого Ион - ваш лучший друг. Ionic абстрагирует сложные части гибридного развития в простой в использовании SDK. Но есть еще одна сложность. Социальный вход. Вход в систему с социальным провайдером требует всплывающего окна или перенаправления. Проблема в том, что этого не существует в родном мире. Его все в порядке, но это еще один способ, и его легко.
И "простой способ" - управлять потоком вручную: Facebook: обработка потока входа вручную
Надеюсь, это поможет вам каким-то образом, хотя вы используете плагин для социального входа, и я этого не делаю.
Примечание. Используете ли вы inapp-браузер?.
Надеюсь это поможет