周理强
周理强
  • 发布:2017-08-11 09:31
  • 更新:2018-06-27 18:47
  • 阅读:2724

mui Facebook第三方登录 真机运行 无法显示按钮 (急!!!求帮忙)

分类:MUI

问题:我们需要做一个基于mui的Facebook第三方登录及分享,所以我们尝试了使用Facebook 网页JavaScript API来制作登录及分享,代码测试在浏览器端没有问题,在真机运行的时候出现了不显示的情况。

测试1:因为我们使用的是JavaScriptAPI,所以Facebook在申请应用key的时候是需要填写网站地址的,那时我填写了localhost:8020,所以猜想是否是站点不一致的问题,我用浏览器测试了另外一个浏览器端口,没有问题,然后又猜想是否真机运行是没有地址的,是否是因为站点不一致的问题呢?又或者是其他的问题导致的呢?


这个是是浏览器运行效果

这个是真机运行效果

这个是我特意为了展示不是VPN的问题所传的图片

这个是我更换端口后所做得测试,这时候浏览器按钮是显示的

代码:

<!DOCTYPE html>  
<html>  

    <head>  
        <meta charset="utf-8">  
        <title>Hello MUI</title>  
        <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">  
        <meta name="apple-mobile-web-app-capable" content="yes">  
        <meta name="apple-mobile-web-app-status-bar-style" content="black">  

        <link rel="stylesheet" href="css/mui.min.css">  
        <link rel="stylesheet" href="css/style.css">  

    </head>  

    <body>  
        <!--头部-->  
        <header class="mui-bar mui-bar-nav publicHeader" style="z-index: 999;">  
            <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>  
            <h1 class="mui-title">测试页</h1>  
        </header>  
        <div style="height: 45px;"></div>  
        这是个测试页面  

        <!--页面内嵌入Facebook页面-->  
        <div id="list"></div>  

        <!--Facebook官方所给的按钮-->  
        <fb:login-button   
          scope="public_profile,email"  
          onlogin="checkLoginState()">  
        </fb:login-button>  

        <script src="js/mui.min.js"></script>  
        <script>  
//          初始化  
            mui.init();  
//          页面内嵌入Facebook页面  
            mui('#list').load('http://m.facebook.com',function(response){});  

//          Facebook官方登录操作  
            mui.ready(function(){  

            window.fbAsyncInit = function() {  
                FB.init({  
                  appId      : '274789189670506',  // 757810061093741  
                  cookie     : true,  
                  xfbml      : true,  
                  version    : 'v2.8',  
                  oauth      : true  
                });  
                FB.AppEvents.logPageView();     
            };  

            (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'));  

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

                })  
            }  

            function statusChangeCallback(response) {  
                     if (response.status === 'connected') {  //登陆状态已连接  
                         fbToken = response.authResponse.accessToken;  
                         getUserInfo();  
                     } else if (response.status === 'not_authorized') { //未经授权  
                         mui.toast('facebook未经授权');  
                     } else {  
                         mui.toast('不是登陆到Facebook;不知道是否授权');  
                     }  
            }  

             //获取用户信息  
            function getUserInfo() {  
                 FB.api('/me', function(response) {  
                     //response.id / response.name  
                    mui.toast('Successful login for: ' + response.name);  
                     //把用户token信息交给后台  
                    self.location= '/home/login.fbLogin.do?accessToken='+fbToken;  
                 });  
            }  

            })  

        </script>  
    </body>  
</html>
2017-08-11 09:31 负责人:无 分享
已邀请:
周理强

周理强 (作者)

求大家帮忙看下问题,也希望官方大大能够看下这类的问题,工程快结尾了,也是很急,所以大家帮下忙谢谢大家了,感谢。如果有任何问题,也可以加我的工作qq, 2975699273

周理强

周理强 (作者)

1求大家帮忙看下问题

周理强

周理强 (作者)

求人看下

DCloud_heavensoft

DCloud_heavensoft

可能是facebook的api在c/s模式下无法正常工作,不行就把登陆页面放到服务器上,通过在线页面打开吧。

  • 周理强 (作者)

    第三张图就是我将按钮写在页面里,然后load到页面里的,不出现按钮

    2017-08-15 12:58

  • 周理强 (作者)

    页面是放在GitHub上的,在线浏览器可以预览出来,然后load到页面里就没了

    2017-08-15 12:59

  • DCloud_heavensoft

    使用chrome调试下真机运行的界面,看看什么问题

    2017-08-15 21:48

  • 周理强 (作者)

    回复 DCloud_heavensoft:不论是手机浏览器还是pc浏览器都是可以的,只有真机里面不行

    2017-08-16 09:18

  • 周理强 (作者)

    回复 DCloud_heavensoft:再帮我猜猜是什么情况

    2017-08-16 16:11

coton_chen1

coton_chen1

facebook登录插件(android版)参考:http://ask.dcloud.net.cn/article/13428

该问题目前已经被锁定, 无法添加新回复