在我的android應用程序用戶可以喜歡我的臉書頁面。因此,我使用加載包含類似框的Facebook的網頁的web視圖。頁面加載順利進入網頁視圖,然後會發生以下情況:webview將不記得Facebook登錄
- 的WebView加載我的網頁上有樣箱
- 一個網站通過點擊Like按鈕將用戶重定向至Facebook登錄頁面
- 登錄後用戶再次重定向到我的自定義頁面一樣
- 但點擊按鈕一樣,當用戶再次重定向到Facebook的登錄頁面
,所以我期望的是,喜歡是可能的登錄後。似乎不知道如何webview不記得登錄。因此,我需要做些什麼來修復這個問題。
下面的屏幕截圖序列顯示發生的事情:
我想避免使用Facebook SDK爲Android!特別是這個程序在我的iPhone版本的應用程序中效果非常好。
下面是一些代碼,用來實現我想要的功能:
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");
}
編輯:我也嘗試了以下接受Cookie但沒有這個工作
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...
Overrding沒有工作要麼
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
好有上,這樣一個線程解決了這個問題:跳到Facebook的空白頁] [1] [1]:HTTP:/ /stackoverflow.com/questions/5108088/android-webview-for-facebook-like-button?rq=1 – toom