在 Android 社交媒体上成功分享后奖励用户?
Reward user after successful sharing on social media on Android?
我想知道如何在我的应用程序中 成功地 共享(从我的应用程序内部使用按钮)到任何社交媒体(Facebook, Twitter, Google+ 等)例如Twitter SDK中是否有类似的东西?
换句话说,我怎么知道我的应用程序已成功共享?
我已阅读 this 答案,但没有帮助。
对于 Twitter,您可以使用 Twitter Kit Native Composer
分享一条推文,该推文基本上是一条 activity,您以 [=22] 开头=]
startActivity(intent);
稍后twitter会广播分享的结果,显示分享成功与否。更多信息在这里:https://dev.twitter.com/twitterkit/android/compose-tweets
对于 Facebook 你也可以获得分享状态,当你显示分享对话框时你可以提供一个回调来通知你分享成功.
public class MainActivity extends FragmentActivity {
CallbackManager callbackManager;
ShareDialog shareDialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
callbackManager = CallbackManager.Factory.create();
shareDialog = new ShareDialog(this);
shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
// Here you'll get sharing status
});
}
更多信息:https://developers.facebook.com/docs/sharing/android?locale=en_US,查看 Share Dialog
段落。
对于 LinkedIn 你可以从 their sdk 得到类似于处理网络请求的结果。
对于 Google+ 你应该检查启动的结果 activity,关于这个文档 developers.google.com/ +/mobile/android/share 您应该调用 startActivityForResult,然后您很可能会得到结果 activity、Activity.RESULT_OK
或 Activity_RESULT_CANCELED
。更多信息在这里:https://developer.android.com/training/basics/intents/result.html
对于 Reddit,您可以使用他们的 REST api。我发现您可以编写一个 post,例如:https://reddit.com/dev/api/#POST_api_compose,它将以成功或失败作为响应。
Fow WhatsApp, Hangouts, Telegram, Viber、Line和其他信使你应该使用本地android方式share 不幸的是没有告诉你结果。
对于推特
After attempting to post a Tweet, the TweetUploadService
broadcasts an Intent with the action value com.twitter.sdk.android.tweetcomposer.UPLOAD_SUCCESS
for success or com.twitter.sdk.android.tweetcomposer.UPLOAD_FAILURE
for failure. On success, the Intent will contain an extra value with the Tweet ID
of the created Tweet. On failure, the Intent will contain a copy of the original intent which could be used to retry the upload.
您可以创建一个 BroadcastReceiver
来接收这些 Intent。
对于 WhatsApp
没有办法。因为 WhatsApp Intent 只允许你打开 whatsapp。它不会给触发器任何回调操作。
对于 Facebook
Facebook 允许您在应用程序中注册回调管理器。
示例代码
public class MainActivity extends FragmentActivity {
CallbackManager callbackManager;
ShareDialog shareDialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
callbackManager = CallbackManager.Factory.create();
shareDialog = new ShareDialog(this);
// this part is optional
shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() { ... });
}
环聊
在Google+ Hangouts API Documentation中,我找不到这样的东西。
旁注
即时消息似乎不会启动共享回调操作。
但一些社交媒体应用程序可以。
对于 WhatsApp
如上所述,Whatsapp 没有此类回调,但您可以在此处执行操作。
要求用户与文本一起共享图片,然后您可以通过检查 Whatsapp/Media/Whatsapp Images/Sent 文件夹中的已发送媒体文件夹来验证。
但是您需要为此获得存储权限。
我想知道如何在我的应用程序中 成功地 共享(从我的应用程序内部使用按钮)到任何社交媒体(Facebook, Twitter, Google+ 等)例如Twitter SDK中是否有类似的东西?
换句话说,我怎么知道我的应用程序已成功共享?
我已阅读 this 答案,但没有帮助。
对于 Twitter,您可以使用
Twitter Kit Native Composer
分享一条推文,该推文基本上是一条 activity,您以 [=22] 开头=]startActivity(intent);
稍后twitter会广播分享的结果,显示分享成功与否。更多信息在这里:https://dev.twitter.com/twitterkit/android/compose-tweets
对于 Facebook 你也可以获得分享状态,当你显示分享对话框时你可以提供一个回调来通知你分享成功.
public class MainActivity extends FragmentActivity { CallbackManager callbackManager; ShareDialog shareDialog; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); callbackManager = CallbackManager.Factory.create(); shareDialog = new ShareDialog(this); shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() { // Here you'll get sharing status }); }
更多信息:https://developers.facebook.com/docs/sharing/android?locale=en_US,查看
Share Dialog
段落。对于 LinkedIn 你可以从 their sdk 得到类似于处理网络请求的结果。
对于 Google+ 你应该检查启动的结果 activity,关于这个文档 developers.google.com/ +/mobile/android/share 您应该调用 startActivityForResult,然后您很可能会得到结果 activity、
Activity.RESULT_OK
或Activity_RESULT_CANCELED
。更多信息在这里:https://developer.android.com/training/basics/intents/result.html对于 Reddit,您可以使用他们的 REST api。我发现您可以编写一个 post,例如:https://reddit.com/dev/api/#POST_api_compose,它将以成功或失败作为响应。
Fow WhatsApp, Hangouts, Telegram, Viber、Line和其他信使你应该使用本地android方式share 不幸的是没有告诉你结果。
对于推特
After attempting to post a Tweet, the
TweetUploadService
broadcasts an Intent with the action valuecom.twitter.sdk.android.tweetcomposer.UPLOAD_SUCCESS
for success orcom.twitter.sdk.android.tweetcomposer.UPLOAD_FAILURE
for failure. On success, the Intent will contain an extra value with theTweet ID
of the created Tweet. On failure, the Intent will contain a copy of the original intent which could be used to retry the upload.
您可以创建一个 BroadcastReceiver
来接收这些 Intent。
对于 WhatsApp
没有办法。因为 WhatsApp Intent 只允许你打开 whatsapp。它不会给触发器任何回调操作。
对于 Facebook
Facebook 允许您在应用程序中注册回调管理器。
示例代码
public class MainActivity extends FragmentActivity {
CallbackManager callbackManager;
ShareDialog shareDialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
callbackManager = CallbackManager.Factory.create();
shareDialog = new ShareDialog(this);
// this part is optional
shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() { ... });
}
环聊
在Google+ Hangouts API Documentation中,我找不到这样的东西。
旁注
即时消息似乎不会启动共享回调操作。
但一些社交媒体应用程序可以。
对于 WhatsApp
如上所述,Whatsapp 没有此类回调,但您可以在此处执行操作。
要求用户与文本一起共享图片,然后您可以通过检查 Whatsapp/Media/Whatsapp Images/Sent 文件夹中的已发送媒体文件夹来验证。
但是您需要为此获得存储权限。