我想在我的Android应用程序中显示类似按钮。下面是我用来在Android应用程序中显示Like按钮的代码。
String url = "http://www.facebook.com/plugins/like.php?layout=standard&show_faces=true&width=80&height=50&action=like&colorscheme=light&href=http://beta.demo.dy/web/service/304.htm"
webview = (WebView) findViewById(R.id.webView1);
webview.loadUrl(url);
webview.setWebViewClient(new LikeWebviewClient());
public class LikeWebviewClient extends WebViewClient {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
但是当我运行此应用程序时,它会显示一个白色区域。如何解决这个问题?
答案 0 :(得分:7)
类似选项可以在Native平台语言(Android,iOS)以及浏览器(curl,PHP,JavaScript)上轻松实现,如下所示。 转到developer.facebook应用程序部分,在Developer App配置的Open Graph部分中,添加内置的Like操作,该操作应在添加新的Open Graph操作时显示在下拉列表中。有关最新更新,请参阅here。
完成后,选择“获取代码”选项以检索示例代码,如下面针对Android平台所述。您可以选择您选择的平台。请注意,app_specific_unique_identifier对于应用程序是唯一的,我出于安全原因删除了它,您必须使用该应用程序。
我已经能够成功测试Like流程。希望这会有所帮助。
Bundle params = new Bundle();
params.putString("object", "http://samples.ogp.me/<app_specific_unique_identifier>");
Request request = new Request(
Session.getActiveSession(),
"me/og.likes",
params,
HttpMethod.POST
);
Response response = request.executeAndWait();
// handle the response
答案 1 :(得分:4)
Facebook SDK尚未为原生移动应用提供like
按钮功能(截至2011年10月17日)。它可以在移动Web应用程序中使用。
有关详细信息,请查看以下链接:
Mobile - Facebook Developers
Like Button - Facebook Developers
答案 2 :(得分:3)
最后Facebook推出了Like Android按钮
步骤:
1 - 将Facebook Library添加到项目
Facebook上的2 - 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);
}
输出
答案 3 :(得分:2)
您可以使用Facebook开发者帐户https://developers.facebook.com的特殊权限在Android应用中使用facebook like按钮。
在此处添加您的应用并提交应用特殊权限。
转到应用审核并提交项目以供审批。
点击开始提交,然后选择LIKE原生按钮,并提交他们想要的所有详细信息,例如您希望得到类似权限,您的应用将如何使用此权限。
如果Facebook会批准您的请求,那么您可以在应用内使用facebook like button。enter code here
<com.facebook.share.widget.LikeView
android:id="@+id/facebooklike"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</com.facebook.share.widget.LikeView>
在此之后你需要做一些java代码。
likeView = (LikeView) findViewById(R.id.facebooklike);
likeView.setLikeViewStyle(LikeView.Style.STANDARD);
likeView.setAuxiliaryViewPosition(LikeView.AuxiliaryViewPosition.INLINE);
likeView.setHorizontalAlignment(LikeView.HorizontalAlignment.CENTER);
likeView.setObjectIdAndType("url of like page", LikeView.ObjectType.PAGE);
类似功能会在您点击按钮时自动调用。
现在您需要从类似页面获得响应,用户喜欢与该页面不同的页面。
enter code here
公共类FbLikes扩展了AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fb_likes);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
try {
if (resultCode == RESULT_OK) {
// verify we're returning from like action
// get action results
bundle = data.getExtras().getBundle("com.facebook.platform.protocol.RESULT_ARGS");
if (bundle != null) {
like = bundle.getBoolean("object_is_liked");// liked/unliked
bundle.getInt("didComplete");
bundle.getInt("like_count"); // object like count
bundle.getString("like_count_string");
bundle.getString("social_sentence");
bundle.getString("completionGesture"); // liked/cancel/unliked
Log.e(TAG, bundle.getString("social_sentence") + "");
Log.e(TAG, "likeornot" + bundle.getBoolean("object_is_liked") + "");
Log.e(TAG, "lcomplete" + bundle.getString("completionGesture") + "");
Log.e(TAG, "count" + bundle.getInt("like_count") + "");
Log.e(TAG, "countstr" + bundle.getString("like_count_string") + "");
Log.e(TAG, "did" + bundle.getInt("didComplete") + "");
}
}
} catch (Exception e) {
}
}
} 此代码将返回您想要的所有功能。
答案 4 :(得分:0)
尝试这个我做了一些修改
String url = "http://www.facebook.com/plugins/like.php?layout=standard&show_faces=true&width=80&height=50&action=like&colorscheme=light&href=http://beta.demo.dy/web/service/304.htm";
// webview = (WebView) findViewById(R.id.webview);
webView.loadUrl(url);
webView.setWebViewClient(new WebViewClient());
class LikeWebviewClient extends WebViewClient
{
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
答案 5 :(得分:0)
下载SDK: http://developers.facebook.com/docs/android
教程 http://developers.facebook.com/docs/android/like-button
我希望它可以解决你的问题。