ngFacebook 无法使用 phonegap
ngFacebook not working with phonegap
我在当前的 angular 应用程序中使用 Almog Baku 的 ngFacebook。在测试环境中它工作正常。但是在通过 phonegap 构建的 apk 中,它不起作用。我已经收录了
<dependency id="cordova-plugin-inappbrowser" />
和
<feature name="InAppBrowser">
<param name="android-package" value="org.apache.cordova.InAppBrowser" />
</feature>
<feature name="InAppBrowser">
<param name="ios-package" value="CDVInAppBrowser" />
</feature>
也进入了我的 config.xml
,但仍然没有弹出 InAppBrowser 或新标签页。
我的App.js
是
var myApp = angular.module('myApp', [
'ngTouch',
'ngRoute',
'myApp.controllers',
'ngIdle',
'ngFileUpload',
'ng.deviceDetector',
'oitozero.ngSweetAlert',
'angular-hmac-sha512',
'ngFacebook'
]);
myApp.config( function( $facebookProvider ) {
$facebookProvider.setAppId('1869339203095182');
});
在我的控制器中:
$scope.login = function() {
$facebook.login().then(function() {
refresh();
});
}
$rootScope.$on('event:social-sign-in-success', function(event, userDetails){
console.log(userDetails);
})
function refresh() {
$facebook.api("/me",{fields: 'id,name,email'}).then(
function(response)
{
//console.log( response );
},
function(err) {
console.log(err);
//$scope.welcomeMsg = "Please log in";
}
);
}
refresh();
Javascript 在移动设备上不适用于社交媒体。它的发生主要是因为安全限制、证书等。请记住 Javascript 在 AppsStore 或 Google Play 中发布应用程序后,您可以通过加载新的 javascript 代码来欺骗业务逻辑。我相信 Facebook 会阻止 javascript 在移动设备上实施。
一些 Cordova 应用程序,例如美国银行 ..,甚至不使用 $http
或 ajax
因为缺少 SSL Pinning,它们对大多数模块使用本机实现。
不想让你失望,但是...看看这个问题:Does not works on cordova android project
2015 年 6 月 4 日开业
I trying to use ngFacebook on a mobile app but is does not work. I tested on desktop and it works perfect
你想达到什么目的?如果您只需要登录,请尝试 official plugin for Facebook in Apache Cordova/PhoneGap - it uses native Facebook plugin. Or cordova-plugin-facebook4
对于社交媒体集成您应该使用官方 cordovaOauth
。您可以找到有关它的所有文档 here。但是要使用它你应该包括
<script src="lib/ng-cordova.js"></script>
<script src="cordova.js"></script>
将这些放入您的 index.html
。在你的控制器中调用应该是:
$scope.login = function() {
$cordovaOauth.facebook("YOUR_APP_ID", ["email","public_profile", "user_friends"]).then(function(result) {
$http.get("https://graph.facebook.com/me", { params: { access_token: result.access_token, fields: "id,name,email,gender,location,website,picture,relationship_status", format: "json" }}).then(function(result1) {
//this is success call
//console.log(result1)
}, function(error) {
alert("There was a problem getting your profile. Check the logs for details.");
console.log(error);
});
}, function(error) {
console.log(error);
});
}
希望对您有所帮助。有关更多详细信息,您可以查看 ng-cordova.js
此文件。
我在当前的 angular 应用程序中使用 Almog Baku 的 ngFacebook。在测试环境中它工作正常。但是在通过 phonegap 构建的 apk 中,它不起作用。我已经收录了
<dependency id="cordova-plugin-inappbrowser" />
和
<feature name="InAppBrowser">
<param name="android-package" value="org.apache.cordova.InAppBrowser" />
</feature>
<feature name="InAppBrowser">
<param name="ios-package" value="CDVInAppBrowser" />
</feature>
也进入了我的 config.xml
,但仍然没有弹出 InAppBrowser 或新标签页。
我的App.js
是
var myApp = angular.module('myApp', [
'ngTouch',
'ngRoute',
'myApp.controllers',
'ngIdle',
'ngFileUpload',
'ng.deviceDetector',
'oitozero.ngSweetAlert',
'angular-hmac-sha512',
'ngFacebook'
]);
myApp.config( function( $facebookProvider ) {
$facebookProvider.setAppId('1869339203095182');
});
在我的控制器中:
$scope.login = function() {
$facebook.login().then(function() {
refresh();
});
}
$rootScope.$on('event:social-sign-in-success', function(event, userDetails){
console.log(userDetails);
})
function refresh() {
$facebook.api("/me",{fields: 'id,name,email'}).then(
function(response)
{
//console.log( response );
},
function(err) {
console.log(err);
//$scope.welcomeMsg = "Please log in";
}
);
}
refresh();
Javascript 在移动设备上不适用于社交媒体。它的发生主要是因为安全限制、证书等。请记住 Javascript 在 AppsStore 或 Google Play 中发布应用程序后,您可以通过加载新的 javascript 代码来欺骗业务逻辑。我相信 Facebook 会阻止 javascript 在移动设备上实施。
一些 Cordova 应用程序,例如美国银行 ..,甚至不使用 $http
或 ajax
因为缺少 SSL Pinning,它们对大多数模块使用本机实现。
不想让你失望,但是...看看这个问题:Does not works on cordova android project 2015 年 6 月 4 日开业
I trying to use ngFacebook on a mobile app but is does not work. I tested on desktop and it works perfect
你想达到什么目的?如果您只需要登录,请尝试 official plugin for Facebook in Apache Cordova/PhoneGap - it uses native Facebook plugin. Or cordova-plugin-facebook4
对于社交媒体集成您应该使用官方 cordovaOauth
。您可以找到有关它的所有文档 here。但是要使用它你应该包括
<script src="lib/ng-cordova.js"></script>
<script src="cordova.js"></script>
将这些放入您的 index.html
。在你的控制器中调用应该是:
$scope.login = function() {
$cordovaOauth.facebook("YOUR_APP_ID", ["email","public_profile", "user_friends"]).then(function(result) {
$http.get("https://graph.facebook.com/me", { params: { access_token: result.access_token, fields: "id,name,email,gender,location,website,picture,relationship_status", format: "json" }}).then(function(result1) {
//this is success call
//console.log(result1)
}, function(error) {
alert("There was a problem getting your profile. Check the logs for details.");
console.log(error);
});
}, function(error) {
console.log(error);
});
}
希望对您有所帮助。有关更多详细信息,您可以查看 ng-cordova.js
此文件。