Seite in der Twitter-App von einer anderen App öffnen - Android


79

Ich suchte nach einer Möglichkeit, die Twitter-App zu starten und eine bestimmte Seite in meiner Anwendung ohne Webansicht zu öffnen. Ich habe die Lösung für Facebook hier gefunden: Öffnen der Facebook-App auf der angegebenen Profilseite

Ich brauche etwas ähnliches.

BEARBEITEN Ich habe gerade eine Lösung gefunden:

try {
    Intent intent = new Intent(Intent.ACTION_VIEW,
    Uri.parse("twitter://user?screen_name=[user_name]"));
    startActivity(intent);
} catch (Exception e) {
    startActivity(new Intent(Intent.ACTION_VIEW,
    Uri.parse("https://twitter.com/#!/[user_name]"))); 
}

3
Vielen Dank! Ich würde hier eine spezifischere Ausnahme setzen: ActivityNotFoundException
Sergey Kostrukov

Und "twitter: // status? User_id = [USER_ID] & status_id = [STATUS_ID]" ist möglich
ChangUZ

@jbc gibt es einen Rückruf, wenn wir auf folgen klicken ....
NagarjunaReddy

Keine Ahnung, ich kann dir nicht dabei helfen @NagarjunaReddy :(
jbc25

Ziehen Sie es vor, eine spezifischere Ausnahme abzufangen, in diesem Fall ActivityNotFoundException. Andernfalls könnten andere Probleme auftreten (wenn Sie diesem Block mehr Code hinzufügen).
Raúl Salinas-Monteagudo

Antworten:


41

Das hat bei mir funktioniert: twitter://user?user_id=id_num


2
Im Jahr 2016 verwenden Sie einfach:startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/PROFILENAME")));
Rick

Ich kann meine ID mit dem Link haben, den Sie uns geben. Ich benutze diese Website: mytwitterid.com
Sébastien REMY

Wie würde das aussehen, wenn Sie Intent verwenden möchten? wie https://twitter.com/intent?text=hello?
Kevin Hernandez

47

Basierend auf der Antwort von fg.radigales habe ich die App nach Möglichkeit gestartet, aber ansonsten auf den Browser zurückgegriffen:

Intent intent = null;
try {
    // get the Twitter app if possible
    this.getPackageManager().getPackageInfo("com.twitter.android", 0);
    intent = new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://user?user_id=USERID"));
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
} catch (Exception e) {
    // no Twitter app, revert to browser
    intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/PROFILENAME"));
}
this.startActivity(intent);

AKTUALISIEREN

Hinzugefügt intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);, um ein Problem zu beheben, bei dem Twitter in meiner App anstatt als neue Aktivität geöffnet wurde.


2
gibt Fehler kann Benutzer zu diesem Zeitpunkt nicht bekommen Twitter android
Rahul

Siehe fg.radigales Antwort
Harry

Dieser Link hat mir nicht geholfen ... sowieso habe ich ihn von irgendwo anders bekommen und arbeite jetzt :)
Narendra Singh

8

Öffnen Sie die Seite in der Twitter-App von einer anderen App mit Android in 2 Schritten:

1. Fügen Sie einfach den folgenden Code ein (beim Klicken auf die Schaltfläche oder an einer beliebigen Stelle)

Intent intent = null;
try{
   // Get Twitter app
   this.getPackageManager().getPackageInfo("com.twitter.android", 0);
   intent = new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://user?user_id=USER_ID"));
   intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
} catch () {
   // If no Twitter app found, open on browser
   intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/USERNAME"));
}

2.intent = new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://user?user_id=USER_ID"));

Um USER_ID zu erhalten, schreiben Sie einfach den Benutzernamen http://gettwitterid.com/ und geben Sie dort die Twitter-Benutzer-ID ein

Referenz : https://solutionspirit.com/open-page-twitter-application-android/

Hoffe es wird helfen :)


4

Meine Antwort baut auf den allgemein akzeptierten Antworten von fg.radigales und Harry auf. Wenn der Benutzer Twitter installiert, aber deaktiviert hat (z. B. mithilfe der App-Quarantäne), funktioniert diese Methode nicht. Die Absicht für die Twitter-App wird ausgewählt, kann sie jedoch nicht verarbeiten, da sie deaktiviert ist.

Anstatt von:

getPackageManager().getPackageInfo("com.twitter.android", 0);
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://user?user_id=2343965036"));

Sie können Folgendes verwenden, um zu entscheiden, was zu tun ist:

PackageInfo info = getPackageManager().getPackageInfo("com.twitter.android", 0);
if(info.applicationInfo.enabled)
    intent = new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://user?user_id=2343965036"));
else
    intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/wrkoutapp"));

1

Probieren Sie einfach dieses Code-Snippet aus. Es wird dir helfen.

//Checking If the app is installed, according to the package name
        Intent intent = new Intent();
        intent.setType("text/plain");
        intent.setAction(Intent.ACTION_SEND);
        final PackageManager packageManager = getPackageManager();
        List<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);

        for (ResolveInfo resolveInfo : list) 
        {
            String packageName = resolveInfo.activityInfo.packageName;

            //In case that the app is installed, lunch it.
            if (packageName != null && packageName.equals("com.twitter.android")) 
            {
                try
                {
                    String formattedTwitterAddress = "twitter://user/" ;
                    Intent browseTwitter = new Intent(Intent.ACTION_VIEW, Uri.parse(formattedTwitterAddress));
                                    long twitterId = <Here is the place for the twitter id>
                    browseTwitter.putExtra("user_id", twitterId);
                    startActivity(browseTwitter);

                    return;
                }
                catch (Exception e) 
                {

                }
            }
        }

        //If it gets here it means that the twitter app is not installed. Therefor, lunch the browser.
        try
        { 
                            String twitterName = <Put the twitter name here>
            String formattedTwitterAddress = "http://twitter.com/" + twitterName;
            Intent browseTwitter = new Intent(Intent.ACTION_VIEW, Uri.parse(formattedTwitterAddress)); 
            startActivity(browseTwitter);
        }
        catch (Exception e) 
        {

        }

Bitte beschreiben Sie, wie Sie "Twitter-ID" expliziter erhalten
Dmitry Kolesnikovich

0

Für mich war dies der Trick, mit dem die Twitter-App geöffnet wird, wenn Sie sie haben oder zum Webbrowser gehen:

 Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/"+"USERID"));
                    startActivity(intent);
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.