我正在尝试使用android webview实现类似facebook的功能.没有"确认"对话框,它工作正常.但是当它需要确认时它不起作用.这是我正在使用的代码片段.
private void setUpWebView() {
likeWebView.setVerticalScrollBarEnabled(false);
likeWebView.setHorizontalScrollBarEnabled(false);
likeWebView.setWebViewClient(new FacebookWebViewClient());
likeWebView.setWebChromeClient(new MyChromeClient());
likeWebView.getSettings().setJavaScriptEnabled(true);
String url = getFacebookLikeUrl();
likeWebView.loadUrl(url);
}
Run Code Online (Sandbox Code Playgroud)
我也在设置ViewClient和WebChromeClient.
private String getFacebookLikeUrl() {
return "http://www.facebook.com/plugins/like.php?" + "href="
+ URLEncoder.encode(mUrl) + "&access_token="
+ URLEncoder.encode(facebook.getAccessToken());
}
Run Code Online (Sandbox Code Playgroud)
请帮我解决这个问题.提前致谢.
我正在尝试将带有Facebook评论部分的网页加载到我的Android WebView中.我按照这个问题提供的解决方案:由于默认浏览器,Android无法在webview中实现Facebook评论
当用户单击网页中的按钮以登录Facebook时,它们将显示登录屏幕并且可以成功登录,然后该视图关闭并再次显示原始网页.但是,它们仍未登录.原始WebView处于与以前相同的状态,登录按钮仍在此处.实际上从childView登录到原始评论部分我错过了什么?相关代码粘贴在下面:
webView.setLayoutParams(getLayoutParams());
webView.setWebChromeClient(new DollyChromeClient());
webView.setWebViewClient(new DollyWebViewClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setAppCacheEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setSupportMultipleWindows(true);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setDisplayZoomControls(true);
webView.getSettings().setBuiltInZoomControls(true);
CookieManager.getInstance().setAcceptCookie(true);
private RelativeLayout.LayoutParams getLayoutParams(){
return new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
}
final class DollyChromeClient extends WebChromeClient {
@Override
public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {
childView = new WebView(mContext);
childView.getSettings().setDomStorageEnabled(true);
childView.getSettings().setJavaScriptEnabled(true);
childView.getSettings().setSupportZoom(true);
childView.getSettings().setBuiltInZoomControls(true);
childView.setWebViewClient(new FaceBookClient());
childView.setWebChromeClient(this);
childView.setLayoutParams(getLayoutParams());
childView.getSettings().setSupportMultipleWindows(true);
parentLayout.addView(childView);
childView.requestFocus();
webView.setVisibility(View.GONE);
WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
transport.setWebView(childView);
resultMsg.sendToTarget();
return true;
}
@Override
public boolean onConsoleMessage(ConsoleMessage cm) {
Log.d("WebViewDebug", cm.message() + " …Run Code Online (Sandbox Code Playgroud)