私は、Twitterアプリケーションを起動し、WebViewなしでアプリケーションから指定されたページを開く方法を探していました。私はここでFacebookの解決策を見つけました: 指定されたプロファイルページでfacebookアプリを開く
同様のものが必要です。
[〜#〜] edit [〜#〜]私はちょうど解決策を見つけました:
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]")));
}
これは私のために働いた:Twitter://user?user_id=id_num
IDを知るには: http://www.idfromuser.com/
Fg.radigalesの回答に基づいて、これは可能であればアプリを起動するために使用したものですが、そうでない場合はブラウザーにフォールバックします。
_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);
_
[〜#〜] update [〜#〜]
Twitterが新しいアクティビティとしてではなくアプリ内で開いていた問題を修正するためにintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
を追加しました。
Android 2ステップで他のアプリからTwitterアプリのページを開く:
1.以下のコードを貼り付けてください(ボタンをクリックするか、必要な場所に)
_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"));
USER_IDを取得するには、ユーザー名 http://gettwitterid.com/ を入力して、そこにTwitterユーザーIDを取得するだけです。
リファレンス: https://solutionspirit.com/open-page-Twitter-application-Android/
それが役立つことを願っています:)
私の答えは、fg.radigalesとHarryから広く受け入れられている答えに基づいています。ユーザーにTwitterがインストールされているが無効になっている場合(たとえば、アプリ検疫を使用して)、この方法は機能しません。 Twitterアプリのインテントが選択されますが、無効になっているため処理できません。
の代わりに:
getPackageManager().getPackageInfo("com.Twitter.Android", 0);
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("Twitter://user?user_id=2343965036"));
以下を使用して、何をするかを決定できます。
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"));
fun getOpenTwitterIntent(context: Context, url: String) {
return try {
context.packageManager.getPackageInfo("com.Twitter.Android", 0)
context.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("Twitter://user?screen_name=$url")))
} catch (e: Exception) {
context.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("https://Twitter.com/#!/$url")))
}
}
このコードスニペットを試してください。それはあなたを助けます。
//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)
{
}
私にとって、これはあなたがそれを持っているかウェブブラウザに行く場合にTwitterアプリを開くトリックをしました:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://Twitter.com/"+"USERID"));
startActivity(intent);