Facebook SDK 3.0与旧的Facebook应用程序版本重定向到浏览器并被卡住 [英] Facebook SDK 3.0 with old Facebook app version redirects to browser and gets stuck

查看:439
本文介绍了Facebook SDK 3.0与旧的Facebook应用程序版本重定向到浏览器并被卡住的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在我的应用程序中有一个FB AuthButton正在与FB进行连接进程我有一个运行旧版本的FB应用程序(版本1.8.3 - 1.8.4)的设备。



当我点击登录按钮,该进程不启动本机应用程序,但调用浏览器完成该过程。
在日志中,我看到那些日志:

  06-16 12:26:00.709:E / ActivityThread(21597):找不到com的提供者信息.facebook.katana.provider.AttributionIdProvider 
06-16 12:26:03.321:E / Tab(21678):onReceivedError -10 fbconnect:// success#access_token = MY_TOKEN& expires_in = 5170432不支持该协议。

,在屏幕上,浏览器显示此屏幕截图:





任何关于如何解决这个问题的方法或者是回到我的应用程序?

解决方案

我们发现Facebook版本为1.9.8+作品,这是版本代码版本代码40477 +。



由于我们使用不推荐使用的Facebook.java类,我们修改了validateAppSignatureForPackage()。现在似乎适用于所有版本的Facebook应用程序。

  private boolean validateAppSignatureForPackage(Context context,String packageName)
{
PackageInfo packageInfo;
try
{
packageInfo = context.getPackageManager()。getPackageInfo(packageName,
PackageManager.GET_SIGNATURES);
if(packageInfo.versionCode< 40477)
{
Log.i(validateAppSignatureForPackage,
您的Facebook应用程序版本是1.9.8之前更新您的Facebook应用程序 );
返回false;
}
}
catch(NameNotFoundException e)
{
Log.i(validateAppSignatureForPackage,e.getMessage());
返回false;
}
catch(异常e)
{
Log.i(validateAppSignatureForPackage,e.getMessage());
返回false;
}

(签名签名:packageInfo.signatures){
if(signature.toCharsString()。equals(FB_APP_SIGNATURE)){
return true;
}
}
返回false;
}

如果你想自己测试,你可以找到Facebook的以前版本应用程序在这里: http://www.androiddrawer .com / 2274 / download-facebook-for-android-1-9-7-app-apk /#。Uctn6Zwaux4


I have in my app a FB AuthButton that is doing the connection to FB process
I have a device that is running an old version of the FB app (version 1.8.3 - 1.8.4).

when I click on the login button, the process doesn't start the native app, but calls the browser to finish the process.
In the logs, I see those logs:

06-16 12:26:00.709: E/ActivityThread(21597): Failed to find provider info for com.facebook.katana.provider.AttributionIdProvider
06-16 12:26:03.321: E/Tab(21678): onReceivedError -10 fbconnect://success#access_token=MY_TOKEN&expires_in=5170432 The protocol is not supported.

and on the screen, the browser shows this screenshot:

any thoughts on how to fix this or ridirect back to my app?

解决方案

We've found that Facebook version 1.9.8+ works, which is version code version code 40477+.

As we are using the deprecated Facebook.java class, we modified validateAppSignatureForPackage(). It seems to work for all versions of the facebook app now.

private boolean validateAppSignatureForPackage(Context context, String packageName) 
{
    PackageInfo packageInfo;
    try 
    {
        packageInfo = context.getPackageManager().getPackageInfo(packageName, 
                      PackageManager.GET_SIGNATURES);
        if(packageInfo.versionCode<40477)
        {
            Log.i("validateAppSignatureForPackage", 
              "Your facebook app version is prior to 1.9.8. Update your facebook app"); 
            return false;
        }
    } 
    catch (NameNotFoundException e) 
    {
        Log.i("validateAppSignatureForPackage", e.getMessage());
        return false;
    }
    catch(Exception e)
    {
        Log.i("validateAppSignatureForPackage", e.getMessage());
        return false;
    }

    for (Signature signature : packageInfo.signatures) {
        if (signature.toCharsString().equals(FB_APP_SIGNATURE)) {
            return true;
        }
    }
    return false;
}

If you want to test this yourself, you can find previous versions of the facebook app here: http://www.androiddrawer.com/2274/download-facebook-for-android-1-9-7-app-apk/#.Uctn6Zwaux4

这篇关于Facebook SDK 3.0与旧的Facebook应用程序版本重定向到浏览器并被卡住的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆