2012-10-16 100 views
24

在我的應用程序中,用戶打開WebView到Facebook個人資料頁面(http://m.facebook.com/some_page)的移動版本。我的問題是,當打開WebView時,用戶需要輸入Facebook的用戶名和密碼。由於我已經通過FB SDK獲得Facebook訪問令牌,並且用戶可能已經安裝了Facebook應用程序,因此我認爲在打開WebView時,有一些方法可以跳過登錄Facebook的煩人階段。如何在Android應用程序webview中使用Facebook訪問令牌

換句話說,如何使用我的應用程序的WebView中已有的訪問令牌?

+2

使用看到這一點:http://stackoverflow.com/questions/10101030/facebook-authentication-in-webview?rq=1 –

+0

THX ZuzooVn,但鏈接不有我想要的答案。我想知道如果方式(使用應用程序的WebView中已有的訪問令牌)可以工作或不工作 – joy

+0

您是否嘗試過fb開發人員https://developers.facebook.com/docs/mobile/android/build/ –

回答

1

從我的理解,你不能。您爲應用獲取的訪問令牌只能與您的應用的API憑據一起使用。即訪問令牌只適用於也包含您的應用程序的密鑰和祕密的調用。即使您可以找到一種方法將這些內容傳遞給WebView(很可能不會被FB's Data Policies覆蓋),但您可能必須讓WebView假裝使用Android SDK(因爲FB會檢查呼叫的來源)。這就是爲什麼我建議你不能。

您也不能讓WebView使用他可能在其股票瀏覽器中使用的用戶Cookie,因爲出於安全原因,每個WebView都有自己的上下文。

如果您經常在應用程序中使用WebView for FB,則可能可以將驗證Cookie從第一個WebView中提取出來,然後使用CookieSyncManager將其插入到後續實例中。或者您可以保存第一個WebView的實例狀態,然後重新使用它。這些只是想法,可能或可能不會工作;我沒有檢查出來。

+2

非常感謝您的幫助,使用cookiemanager是工作,正如您所說的,每當webview laod url時,我都必須添加獲取訪問令牌的同時獲取的cookie。例如 wb =(WebView)this.findViewById(R.id.share_wb); String url =「http://m.facebook.com/sharer.php?u=www.douban.com」; CookieSyncManager.createInstance(this); CookieManager cookieManager = CookieManager.getInstance(); cookieManager.setCookie(url,Facebook.cookieString); CookieSyncManager.getInstance()。sync(); wb。使用loadURL(URL); – joy

1

您可以將該AccessToken分別存儲在屬性中,並檢查您是否使用webview,然後傳遞該accessToken,以及當用戶使用Ti.Facebook時使用另一個AccessToken。

-2

仔細閱讀這個項目,並嘗試...我想在我的項目..它的工作原理是例子..

卜你之前服用這個例子中,你已經創建了Facebook頁面,並得到一個應用程序 - ID,在這個項目中

https://github.com/ddewaele/AndroidFacebookSample

+1

這似乎只是一個通用的Facebook集成(並且使用舊的API) - 這不會在任何地方使用WebViews。 –

相關問題