如何在android webview中像确认一样处理facebook
我正在尝试使用 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);
}
我还设置了 ViewClient 和 WebChromeClient。
private String getFacebookLikeUrl() {
return "http://www.facebook.com/plugins/like.php?" + "href="
+ URLEncoder.encode(mUrl) + "&access_token="
+ URLEncoder.encode(facebook.getAccessToken());
}
请帮我解决这个问题。提前致谢。
I am trying to implement facebook like functionality using android webview. It is working fine without "confirm" dialog. But its not working when like needs confirmation. Here is the code snippet i am using.
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);
}
I am also setting ViewClient and WebChromeClient.
private String getFacebookLikeUrl() {
return "http://www.facebook.com/plugins/like.php?" + "href="
+ URLEncoder.encode(mUrl) + "&access_token="
+ URLEncoder.encode(facebook.getAccessToken());
}
Please help me out to solve this issue. Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Facebook 之类的确认会在新窗口中打开confirm_widget。所以你的 webview 应该支持多窗口打开。对于此 setJavaScriptCanOpenWindowsAutomatically(true) 和 setSupportMultipleWindows(true) ,您的 webview -
Facebook 类似确认调用 onCreateWindow() 方法。 请重写 WebChromeClient 中的 onCreateWindow 方法 -
因此,当用户单击 Like 或 Cancel 时, recognize_widget 来调用 onCloseWindow。在此方法中删除最后添加的 webview。
Facebook like confirmation opens confirm_widget in new window. So your webview should support Multiple Window opening. for this setJavaScriptCanOpenWindowsAutomatically(true) and setSupportMultipleWindows(true) for your webview-
Facebook like confirmation calls onCreateWindow() method. SO override the onCreateWindow method in WebChromeClient -
confirm_widget for like calls onCloseWindow when user click either Like or Cancel. On this method remove last added webview.
我将其用于 Stripe Checkout,它在移动设备中打开一个新窗口进行支付。
基于@Shweta的回应:
在您的活动中:
添加扩展WebChromeClient的类
在您的布局xml中,不要设置webview,因为我们是动态创建它们的。
I used this for Stripe Checkout which opens a new window in mobile devices for payments.
Based on @Shweta's response :
In your activity:
Add this class which extends WebChromeClient
In your layout xml, don't set webviews since we create them on the fly.