android - facebook like on webview android 登录后显示黑屏

标签 android facebook facebook-like

我为我的应用程序使用 facebook html 来打开这样的 webview https://developers.facebook.com/docs/plugins/like-button/

webview 显示了一个“赞”和“分享”按钮,但在我登录到 facebook 后,它没有返回到“赞”和“分享”按钮,而是一个空白页面,“分享”按钮工作正常。

那么登录后如何返回facebook like url呢?

public class LikeFacebookActivity extends BaseActivity {

    private WebView webView;
    private final String URL = "facebookIDhere";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.like_facebook_webview);

        webView = (WebView) findViewById(R.id.webView1);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setAppCacheEnabled(true);
        webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);

        showLoading();
        webView.setWebViewClient(new MyWebViewClient());

        webView.loadUrl(URL);


        ActionBar actionbar = getActionBar();
        actionbar.setCustomView(R.layout.actionbar_top_like_facebook);
        actionbar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);

        Button backButton = (Button) findViewById(R.id.buttonGeneralBack);

        backButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                onBackPressed();
            }
        });
    }

    @Override
    public void onBackPressed() {
        finish();
        overridePendingTransition(R.anim.animation_slide_from_left,
                R.anim.animation_slide_to_right);
    }

    public class MyWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {         
            if(url.contains("something")) return true;
            return false; 
        }
        public void onPageFinished(WebView view, String url) {
            hideLoading();
        }
    }

}

最佳答案

我已经解决了这个问题,只需使用 system.out.println 来查看登录后 facebook 加载了哪个页面

public class MyWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {         
        if(url.contains("something")) return true;
        return false; //Default is to not override unless our condition is met.
    }
    public void onPageFinished(WebView view, String url) {
        hideLoading();
        //String webUrl = webView.getUrl();
        //System.out.println(webUrl);
        if(url.startsWith("https://www.facebook.com/plugins/close_popup.php#_=_")){
            String redirectUrl = URL;
             view.loadUrl(redirectUrl);
            return;
        }
         super.onPageFinished(view, url);
    }
}

关于android - facebook like on webview android 登录后显示黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20965285/

相关文章:

android - 无法解析符号 FlutterActivity

compatibility - 如何限制 Android Market 上的设备使用(新功能)?

android - 如何在android的启动图库中获得多选

javascript - 将样式表注入(inject) Iframe(Facebook Like Box)

iOS、Facebook SDK。群组页面的“点赞”按钮具体示例?

javascript - 在页面上显示 facebook Like 按钮

android - 构建Android时如何保存所有中间文件?

ios - FBSession requestNewPublishPermissions 在响应之前失败

facebook - 从 Facebook Graph API 评级调用获取评论者信息

facebook - 如果我启用我的应用程序的迁移 "July 2013 Breaking Changes",则无法通过电子邮件搜索用户