我想在我的android应用程序中集成一个like按钮。我用的是代码
likeWebView = (WebView) findViewById( R.id.webView1 );
likeWebView.getSettings().setJavaScriptEnabled(true);
String url = "http://www.facebook.com/plugins/like.php?" +
"href=" + URLEncoder.encode("likeurl" ) + "&" +
"layout=standard&" +
"show_faces=false&" +
"width=500&" +
"action=like&" +
"colorscheme=light&" +
"access_token=" + URLEncoder.encode( "read_stream" );
likeWebView.loadUrl( url );但登录后显示的是一个空白页面。请给我一个解决方案,添加一个喜欢按钮。
发布于 2011-12-16 15:30:38
private initLikeButton( String urlToLike ) {
likeWebView = (WebView) findViewById( R.id.likeWebView );
likeWebView.getSettings().setJavaScriptEnabled(true);
String url = "http://www.facebook.com/plugins/like.php?" +
"href=" + URLEncoder.encode( urlToLike ) + "&" +
"layout=standard&" +
"show_faces=false&" +
"width=375&" +
"action=recommend&" +
"colorscheme=light&" +
"access_token=" + URLEncoder.encode( FacebookAdapter.getInstance().getAccessToken() );
likeWebView.loadUrl( url );在这里,在你的代码中,你必须把放在像,url这样的地方。
使用由http://developers.facebook.com/docs/reference/plugins/like处的like按钮代码生成器提供的iframe代码。但由于iframe基本上与WebView相同,因此在iframe中加载代码,然后在WebView中加载iframe似乎是多余的。因此,我只是使用以下代码将iframe中的代码直接加载到WebView中。但同样的事情也会发生在两种情况下。
顺便说一下,在开发iPhone应用程序时也存在同样的问题。我们不希望用户每次运行我们的应用程序时都必须登录facebook。但不幸的是,如果用户自上次通过我们的应用程序登录facebook以来,已经在另一台计算机上登录过facebook,他们将不得不再次登录。
在android平台上,我认为一个更好的解决方案可能是有一个facebook应用程序,你可以向它发送一个意图,它负责让用户保持登录,并返回html以呈现点赞按钮。
更多信息请访问:https://github.com/facebook/facebook-android-sdk/issues/17
http://blog.doityourselfandroid.com/2011/02/28/30-minute-guide-integrating-facebook-android-application/
http://www.integratingstuff.com/2010/10/14/integrating-facebook-into-an-android-application/
发布于 2014-11-29 05:57:11
终于在脸书上发布了安卓版的Like按钮
步骤:
1-将Facebook Library添加到项目
2- Facebook上的Create App 3-更新清单
**In the Application tab add meta-data**
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/fb_id" />4-在布局中添加LikeView
//activitymain.xml
<com.facebook.widget.LikeView
android:id="@+id/like_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
</com.facebook.widget.LikeView>5- ActivityMain.java
//set facebook page or link to this like button
LikeView likeView;
UiLifecycleHelper uiHelper;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activitymain);
uiHelper = new UiLifecycleHelper(this, null);
likeView = (LikeView) findViewById(R.id.like_view);
likeView.setObjectId("https://www.facebook.com/<page_username>");//it can be any link
likeView.setLikeViewStyle(LikeView.Style.STANDARD);
likeView.setAuxiliaryViewPosition(LikeView.AuxiliaryViewPosition.INLINE);
likeView.setHorizontalAlignment(LikeView.HorizontalAlignment.LEFT);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
uiHelper.onActivityResult(requestCode, resultCode, data, null);
}输出

发布于 2012-07-25 20:51:44
许多答案都是有效的;我只是在上面已经有的基础上进行构建。在实际实施他们的解决方案时,我发现设备的默认浏览器将会打开,因为没有设置shouldOverrideUrlLoading。
另外,我把它从recommended改成了like (我知道如果人们想要复制粘贴代码,像这样的小事情会让他们很生气--我对此很生气:P)。
以下是截至2012年7月25日运行的代码。
这只是LIKE按钮,如果您想要webView中的其他内容,请更改宽度/高度。
Java
WebView likeWebView = new WebView(this);
likeWebView.getSettings().setJavaScriptEnabled(true);
likeWebView.setWebViewClient(new WebViewClient() {
public void onPageStarted(WebView view, String url, Bitmap favicon) {
view.setVisibility(View.INVISIBLE);
}
public void onPageFinished(WebView view, String url) {
view.setVisibility(View.VISIBLE);
}
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
});
String url = "http://www.facebook.com/plugins/like.php?" +
"href=" + URLEncoder.encode( "[yout_url]" ) + "&" +
"layout=standard&" +
"show_faces=false&" +
"width=375&" +
"action=like&" +
"colorscheme=light&" +
"access_token=" + URLEncoder.encode( mApp.facebook.getAccessToken() );
likeWebView.loadUrl(url);布局
<WebView
android:id="@+id/fb_likeWebView"
android:layout_width="51dp"
android:layout_height="24dp" />干杯!:D
https://stackoverflow.com/questions/8530759
复制相似问题