Открыть профиль пользователя Instagram
Мне удалось открыть профиль пользователя Twitter
и Facebook
из моего приложения. Но я не могу найти ссылки на Instagram
.
Есть ли способ открыть Instagram
, чтобы показать профиль пользователя, например, в twitter или facebook?
Например, чтобы запустить Intent
для запуска приложения Twitter:
public Intent getOpenTwitterIntent(Context context) {
try {
return new Intent(Intent.ACTION_VIEW,
Uri.parse("twitter://user?screen_name="
.concat(twitterUsername)));
} catch (Exception e) {
return new Intent(
Intent.ACTION_VIEW,
Uri.parse("https://twitter.com/#!/".concat(twitterUsername)));
}
}
Как я могу достичь чего-то подобного с Instagram
?
Спасибо заранее.
Ответы
Ответ 1
Вот способ получить Intent
, чтобы открыть приложение Instagram на странице профиля пользователя:
/**
* Intent to open the official Instagram app to the user profile. If the Instagram app is not
* installed then the Web Browser will be used.</p>
*
* Example usage:</p> {@code newInstagramProfileIntent(context.getPackageManager(),
* "http://instagram.com/jaredrummler");}</p>
*
* @param pm
* The {@link PackageManager}. You can find this class through
* {@link Context#getPackageManager()}.
* @param url
* The URL to the user Instagram profile.
* @return The intent to open the Instagram app to the user profile.
*/
public static Intent newInstagramProfileIntent(PackageManager pm, String url) {
final Intent intent = new Intent(Intent.ACTION_VIEW);
try {
if (pm.getPackageInfo("com.instagram.android", 0) != null) {
if (url.endsWith("/")) {
url = url.substring(0, url.length() - 1);
}
final String username = url.substring(url.lastIndexOf("/") + 1);
// http://stackoverflow.com/questions/21505941/intent-to-open-instagram-user-profile-on-android
intent.setData(Uri.parse("http://instagram.com/_u/" + username));
intent.setPackage("com.instagram.android");
return intent;
}
} catch (NameNotFoundException ignored) {
}
intent.setData(Uri.parse(url));
return intent;
}
Ответ 2
После краткого поиска и попыток, что все мы знаем, "НЕ РАБОТАЕТ" Я получил это, чтобы работать
Uri uri = Uri.parse("http://instagram.com/mzcoco2you");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
Это должно начинаться с вашего браузера по умолчанию и... там вы идете. Ответ: "instagram.com" + "/UserName".
Ответ 3
До сих пор я не мог найти способ показать профиль пользователя напрямую.. но есть способ вокруг.
Нашел это решение из манифест Instagram из GitHub
Intent iIntent = getPackageManager().getLaunchIntentForPackage("com.instagram.android");
iIntent.setComponent(new ComponentName( "com.instagram.android", "com.instagram.android.activity.UrlHandlerActivity"));
iIntent.setData( Uri.parse( "http://instagram.com/p/gjfLqSBQTJ/") );
startActivity(iIntent);
Это откроет конкретное сообщение изображения пользователя в приложении. В приложении страницы пользователь может открыть профиль со ссылкой внутри.
Если вы хотите открыть недавнюю публикацию или что-то еще, вы можете использовать API-интерфейс Instagram
Это не мы хотим точно, но лучший вариант сейчас... я думаю:)
Ответ 4
Чтобы открыть прямое приложение instagram для профиля пользователя:
String scheme = "http://instagram.com/_u/USER";
String path = "https://instagram.com/USER";
String nomPackageInfo ="com.instagram.android";
try {
activite.getPackageManager().getPackageInfo(nomPackageInfo, 0);
intentAiguilleur = new Intent(Intent.ACTION_VIEW, Uri.parse(scheme));
} catch (Exception e) {
intentAiguilleur = new Intent(Intent.ACTION_VIEW, Uri.parse(path));
}
activite.startActivity(intentAiguilleur);
// Use this link to open directly a picture
String scheme = "http://instagram.com/_p/PICTURE";
Ответ 5
try {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://instagram.com/_u/" + "username"));
intent.setPackage("com.instagram.android");
startActivity(intent);
}
catch (android.content.ActivityNotFoundException anfe)
{
startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse("https://www.instagram.com/" + username)));
}
Ответ 6
К сожалению, в настоящее время вы не можете открыть приложение Instagram, чтобы перейти непосредственно к профилю пользователя. Однако вы можете открыть определенную фотографию в приложении Instagram.
Следующий код, который я предоставил, откроет определенное изображение внутри приложения Instagram. Если приложение Instagram не установлено, оно откроет пользовательский профиль внутри браузера.
public void openInstagram (View view) {
Intent intent = null;
String pictureId = "p/0vtNxgqHx9";
String pageName = "d4v3_r34d";
try {intent = getPackageManager().getLaunchIntentForPackage("com.instagram.android");
intent.setComponent(new ComponentName("com.instagram.android", "com.instagram.android.activity.UrlHandlerActivity"));
intent.setData(Uri.parse("http://instagram.com/" + pictureId));
} catch (Exception e) {
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://instagram.com/" + pageName));
}
this.startActivity(intent);
Я очень упростил редактирование этого кода для ваших целей. Установите "String pictureId" на идентификатор изображения, которое вы хотите отобразить, и установите "String pageName" для имени пользователя вашей учетной записи Instagram.
Часть имени пользователя очевиден, но если вам нужна помощь, чтобы посмотреть изображение , выполните следующие действия.