Android webview赢得';我不记得facebook登录了
在我的android应用程序中,用户可以喜欢我的facebook页面。因此,我使用一个webview加载一个包含类似facebook的框的网页。页面被很好地加载到webview中,然后发生以下情况:Android webview赢得';我不记得facebook登录了,android,webview,facebook-like,Android,Webview,Facebook Like,在我的android应用程序中,用户可以喜欢我的facebook页面。因此,我使用一个webview加载一个包含类似facebook的框的网页。页面被很好地加载到webview中,然后发生以下情况: WebView使用类似facebook的框加载我的网页 通过点击Like按钮,用户被重定向到facebook登录页面 登录后,用户将再次重定向回我的自定义页面 但是当点击like按钮时,用户再次被重定向到facebook登录页面 所以我想,在登录之后,类似的事情是可能的。不知何故,webview似乎
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final WebView fbWebView = (WebView) findViewById( R.id.facebookWebView );
fbWebView.getSettings().setJavaScriptEnabled(true);
fbWebView.setWebViewClient( new WebViewClient() {
@Override
public WebResourceResponse shouldInterceptRequest (WebView view, String url) {
Log.d("call url", url );
if ( url.contains("login.php?skip_api_login") ) {
fbWebView.loadUrl("http://www.example.de/iphone_facebook_like_page.html");
return null;
}
if( url.contains("user_successfully_liked") )
fbWebView.loadUrl("http://www.example-success.de");
return null;
}
});
fbWebView.loadUrl("http://www.example.de/iphone_facebook_like_page.html");
}
编辑:我也尝试了以下方法来接受cookies,但都不起作用
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
CookieSyncManager.createInstance(this);
CookieSyncManager.getInstance().startSync();
CookieManager.setAcceptFileSchemeCookies(true);
CookieManager.getInstance().setAcceptCookie(true);
//rest is the same...
过度估计也不起作用
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
您有这个错误,因为WebView不记得cookies。请阅读下面的问题:不确定您是否得到了问题的答案,但我尝试了与以下代码的组合,这对我很有效:
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
...
WebView webView = new WebView();
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setAppCacheEnabled(true);
settings.setDomStorageEnabled(true);
settings.setGeolocationEnabled(true); // this last one is probably optional
webView.setWebViewClient(new WebViewClient());
webView.loadUrl(<your url here>);
...
}
@覆盖
创建时受保护的void(捆绑){
super.onCreate(bundle);
...
WebView WebView=新建WebView();
WebSettings=webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setAppCacheEnabled(true);
settings.setDomStorageEnabled(true);
settings.setGeolocationEnabled(true);//最后一个可能是可选的
setWebViewClient(新的WebViewClient());
loadUrl();
...
}
然后,您需要为CookieSyncManager单例类调用相应的方法,如上面链接中所述。请注意,在API级别21中,sync类已被弃用:我尝试了线程中提供的所有“解决方案”,但一无所获。我更新了我的问题,显示了我的尝试。好的,有一个线程可以解决问题:[跳过facebook空白页][1][1]: