【问题标题】:How to show Twitter Posting dialog Like Iphone如何像 iPhone 一样显示 Twitter 发帖对话框
【发布时间】:2012-08-18 18:45:39
【问题描述】:

我正在将 twitter 集成到我的应用程序中,并希望显示 iphone 中可用的 twitter 帖子对话框,如下图所示。

我们可以在 Android 中使用这个对话框吗?如何实现?

【问题讨论】:

    标签: android twitter twitter-oauth twitter4j


    【解决方案1】:

    我认为尝试将 UI 从一个平台复制到另一个平台是个坏主意。

    我建议您使用共享意图:

    http://mobile.tutsplus.com/tutorials/android/android-sdk-implement-a-share-intent/

    http://developer.android.com/training/sharing/send.html

    它非常易于使用并与平台集成。

    【讨论】:

    • 是的,没关系,但在这里我不想在 Twitter 上发布 Intent。我正在使用 twitter4j sdk 将 twitter 集成到我的应用程序中,并想用它发布。我只是问 twitter 是否也在 android sdk 中提供了这个对话框。这只是一个网络视图。
    • 我不想使用 Intent,因为该用户的设备中必须有 twitter,但是如果用户的设备中没有 twitter 怎么办
    • 好吧,这是一个很好的理由:)。我不认为这是由 sdk 提供的。但我认为将您的 webview 重定向到 Twitter 移动版上的相应帖子页面很容易。
    • 我现在无法测试,但我认为它可能适用于简单的 webview 和 Twitter 网络意图:dev.twitter.com/docs/intents
    • 他并没有试图复制 UI 本身。他正在尝试复制用户体验。事实上,在我看来,让用户离开您的应用程序并将他带到浏览器以便他可以输入凭据是糟糕的用户体验。如果您可以像在 iOS 中一样创建一个 Dialog,并在您的应用程序中显示,为什么不这样做呢?看看这段代码:stackoverflow.com/questions/10548117/twitter-login-dialog-error
    【解决方案2】:

    如果已安装,您可以通过从共享意图中查找 twitter 应用程序来做到这一点,但如果没有,您可以处理该情况并打开您的 twitter 应用程序页面,如下面的代码所示,因为我发现 twitter4j 难以集成并给出不一致的结果。

        Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
                        shareIntent.setType("text/plain");
                        shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "subject");
                        shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, " text";
    
                        final PackageManager pm = v.getContext().getPackageManager();
                        final List<ResolveInfo> activityList = pm.queryIntentActivities(shareIntent, 0);
    
                        boolean twtchk=false;
    
                        for (final ResolveInfo app : activityList) {
    
                            if ("com.twitter.android.PostActivity".equals(app.activityInfo.name)) {
                                final ActivityInfo activity = app.activityInfo;
                                System.out.println("package==="+activity.applicationInfo.packageName);
                                final ComponentName name = new ComponentName(activity.applicationInfo.packageName, activity.name);
                                shareIntent.addCategory(Intent.CATEGORY_LAUNCHER);
                                shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
                                shareIntent.setComponent(name);
                                v.getContext().startActivity(shareIntent);
                                twtchk=true;
                                break;
                            }
    
    
                        }
    
                        if(!twtchk)
                        {
                            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/yourapp"));
    
                            startActivity(intent);
                        }
    

    【讨论】:

    • 正是我正在寻找的。有没有更好的方法来定位 Twitter PostActivity?
    【解决方案3】:

    在 xml 中创建这个视图并使用它。 here 是使用 twitter4j 在 twitter 上发布字符串的教程

    【讨论】:

      猜你喜欢
      • 2014-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-15
      • 2012-08-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多