简体   繁体   English

Android模拟器上未显示Worklight Facebook登录按钮

[英]Worklight Facebook Login Button not displaying on Android Emulator

I am working on Facebook Login in Worklight(demo appliction to check facebook integration) ,i have implemented Login Button using Facebook Javascript SDk here's my code 我正在Worklight中进行Facebook登录(演示应用程序以检查Facebook集成),我已经使用Facebook Javascript SDk实现了登录按钮,这是我的代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Facebook Login JavaScript Example</title>
<meta name="viewport"
    content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0">
<!--
                <link rel="shortcut icon" href="images/favicon.png">
                <link rel="apple-touch-icon" href="images/apple-touch-icon.png"> 
            -->
<link rel="stylesheet" href="css/main.css">
<script>window.$ = window.jQuery = WLJQ;</script>
</head>

<body style="display: none;">
<script>
  // This is called with the results from from FB.getLoginStatus().
  function statusChangeCallback(response) {
    console.log('statusChangeCallback');
    console.log(response);
    // The response object is returned with a status field that lets the
    // app know the current login status of the person.
    // Full docs on the response object can be found in the documentation
    // for FB.getLoginStatus().
    if (response.status === 'connected') {
      // Logged into your app and Facebook.
      testAPI();
    } else if (response.status === 'not_authorized') {
      // The person is logged into Facebook, but not your app.
      document.getElementById('status').innerHTML = 'Please log ' +
        'into this app.';
    } else {
      // The person is not logged into Facebook, so we're not sure if
      // they are logged into this app or not.
      document.getElementById('status').innerHTML = 'Please log ' +
        'into Facebook.';
    }
  }

  // This function is called when someone finishes with the Login
  // Button.  See the onlogin handler attached to it in the sample
  // code below.
  function checkLoginState() {
    FB.getLoginStatus(function(response) {
      statusChangeCallback(response);
    });
  }

  window.fbAsyncInit = function() {
  FB.init({
    appId      : '721457581245356',
    cookie     : true,  // enable cookies to allow the server to access 
                        // the session
    xfbml      : true,  // parse social plugins on this page
    version    : 'v2.1' // use version 2.1
  });

  // Now that we've initialized the JavaScript SDK, we call 
  // FB.getLoginStatus().  This function gets the state of the
  // person visiting this page and can return one of three states to
  // the callback you provide.  They can be:
  //
  // 1. Logged into your app ('connected')
  // 2. Logged into Facebook, but not your app ('not_authorized')
  // 3. Not logged into Facebook and can't tell if they are logged into
  //    your app or not.
  //
  // These three cases are handled in the callback function.

  FB.getLoginStatus(function(response) {
    statusChangeCallback(response);
  });

  };

  // Load the SDK asynchronously
  (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 = "js/sdk.js";
    fjs.parentNode.insertBefore(js, fjs);
  }(document, 'script', 'facebook-jssdk'));

  // Here we run a very simple test of the Graph API after login is
  // successful.  See statusChangeCallback() for when this call is made.
  function testAPI() {
    console.log('Welcome!  Fetching your information.... ');
    FB.api('/me', function(response) {
      console.log('Successful login for: ' + response.name);
      document.getElementById('status').innerHTML =
        'Thanks for logging in, ' + response.name + '!';
    });
  }
</script>

<!--application UI goes here-->
    Facebook Page

<div id="fb-root">

        <!--
          Below we include the Login Button social plugin. This button uses
          the JavaScript SDK to present a graphical Login button that triggers
          the FB.login() function when clicked.
        -->

            <fb:login-button scope="public_profile,email" onlogin="checkLoginState();">
            </fb:login-button>

    <div id="status"></div>

    <div class="fb-like" 
         data-share="true" 
         data-width="450"
         data-show-faces="true"
         style="padding-top: 10px;"></div>

</div>

    <script src="js/initOptions.js"></script>
    <script src="js/main.js"></script>
    <script src="js/messages.js"></script>

</body>
</html>

When i run the application on Worklight Android Simulator the login button is displayed but on Login Button click i get an error what is this error ? 当我在Worklight Android Simulator上运行该应用程序时,显示登录按钮,但是在“ 登录按钮”上单击,我得到一个错误,这是什么错误? 在此处输入图片说明

And now when i am trying to run the android project (created by worklight) on Android Emulator it does not display the Login Button 现在,当我尝试在Android Emulator上运行android项目(由worklight创建)时,它不显示登录按钮 在此处输入图片说明

is it related to re-direct url ? 与重定向网址有关吗? or call back url ? 或回叫网址? i have tried googling a lot but nothing is working what does that ERROR mean ? 我已经尝试了很多谷歌搜索,但没有任何工作,该错误是什么意思? can any1 help ? 可以帮忙吗?

My suggestion to you is to use the Native Android SDK that Facebook provides. 我对您的建议是使用Facebook提供的Native Android SDK。

If you are using 6.1 and below, you can use the WL.NativePage.show API. 如果您使用的是6.1及以下版本,则可以使用WL.NativePage.show API。
If you are using 6.2 and above, you can use the SendAction API. 如果您使用的是6.2及更高版本,则可以使用SendAction API。

Using the above APIs you can invoke a new page (class) to which you will integrate the native Android SDK, which will enable you to display the Facebook Login page and/or use other options provided by Facebook. 使用上述API,您可以调用一个新页面(类),您将在其中集成本机Android SDK,这将使您能够显示Facebook登录页面和/或使用Facebook提供的其他选项。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM