从其他应用程序打开Twitter应用程序并加载一些页面

Spe*_*ise 7 twitter android

有没有办法从我自己的应用程序打开Twitter应用程序?

例如,我有自己的Android应用程序,我想使用Intent打开Twitter应用程序.我怎样才能做到这一点?用例子的答案将非常感激.

Chr*_*han 9

try {
   startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://user?screen_name=" + twitter_user_name)));
}catch (Exception e) {
   startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/#!/" + twitter_user_name)));
}
Run Code Online (Sandbox Code Playgroud)

这应该为你做必要的工作.


Phi*_*hil 6

如果用户已经在他们的手机上安装了Twitter,那么这样的事情应该照顾它:

    try{
            Intent intent = new Intent(Intent.ACTION_SEND);
            intent.putExtra(Intent.EXTRA_TEXT, "this is a tweet");
            intent.setType("text/plain");
            final PackageManager pm = getPackageManager();
            final List<?> activityList = pm.queryIntentActivities(intent, 0);
            int len =  activityList.size();
            for (int i = 0; i < len; i++) {
                final ResolveInfo app = (ResolveInfo) activityList.get(i);
                if ("com.twitter.android.PostActivity".equals(app.activityInfo.name)) {
                    final ActivityInfo activity=app.activityInfo;
                    final ComponentName name=new ComponentName(activity.applicationInfo.packageName, activity.name);
                    intent.addCategory(Intent.CATEGORY_LAUNCHER);
                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
                    intent.setComponent(name);
                    startActivity(intent);
                    break;
                }
            }
      }
        catch(final ActivityNotFoundException e) {
            Log.i("twitter", "no twitter native",e );
        }
Run Code Online (Sandbox Code Playgroud)


Bul*_*kel 6

扩大对@克里斯汉的回答,你可以打开Twitter的应用程序(从这个文章进行基于URI不同职能岗位

twitter://user?screen_name=lorenb
twitter://user?id=12345
twitter://status?id=12345
twitter://timeline
twitter://mentions
twitter://messages
twitter://list?screen_name=lorenb&slug=abcd
twitter://post?message=hello world
twitter://post?message=hello world&in_reply_to_status_id=12345
twitter://search?query=%23hashtag
Run Code Online (Sandbox Code Playgroud)

例如

String uriStr = "twitter://post?message=hello world"
try {
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(uriStr)));
}catch (Exception e) {
   //the user doesn't have twitter installed
}
Run Code Online (Sandbox Code Playgroud)

注意:我只尝试了userpost,所以如果您遇到任何不起作用的地方,请告诉我,我将更新此答案。