31

我设法从我的应用程序中打开TwitterFacebook用户个人资料。但我找不到任何对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?提前致谢。

4

7 回答 7

44

这是一种Intent将 Instagram 应用程序打开到用户个人资料页面的方法:

/**
 * Intent to open the official Instagram app to the user's 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's Instagram profile.
 * @return The intent to open the Instagram app to the user's 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;
}
于 2014-10-04T05:56:01.480 回答
9

到目前为止,我找不到直接显示用户个人资料的方法..但是有一种方法..

从 GitHub 的 Instagram Manifest 中找到此解决方案

 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);

这将打开用户在应用程序中发布的特定图片。从页面应用程序用户可以打开带有链接的个人资料。

如果你想打开最近的帖子什么的,你可以使用Instagram API

这不是我们想要的,但现在更好的选择......我猜:)

于 2013-11-15T10:31:10.027 回答
8

经过简短的搜索并尝试了我们都知道的“WON'T WORK”后,我得到了这个工作

 Uri uri = Uri.parse("http://instagram.com/mzcoco2you");
 Intent intent = new Intent(Intent.ACTION_VIEW, uri);
 startActivity(intent);

这应该会启动您的默认浏览器,然后……就可以了。答案是“instagram.com”+“/UserName”。

于 2013-06-24T06:44:24.937 回答
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";
于 2015-06-04T13:33:26.147 回答
2
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)));
     }
于 2017-01-06T05:20:19.487 回答
0

不幸的是,目前您无法打开 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”设置为您要显示的图片的 ID,并将“String pageName”设置为您 Instagram 帐户的用户名。

用户名部分很明显,但如果您需要帮助来获取图片 ID,请查看此图片

于 2015-03-29T18:39:13.153 回答
0

检查下面的代码:

Intent instaintent = getPackageManager().getLaunchIntentForPackage("com.instagram.android");
instaintent.setData(Uri.parse("https://www.instagram.com/insta_save_new/"));    
startActivity(instaintent);
于 2020-10-20T17:58:15.870 回答