我设法从我的应用中打开了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
达成类似的效果?
提前谢谢。
答案 0 :(得分:36)
以下是让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;
}
答案 1 :(得分:9)
到目前为止,我找不到直接显示用户个人资料的方法..但是还有办法......
从Instagram Manifest from 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);
这将打开用户在应用中发布的特定图片。从页面应用程序用户可以打开包含内部链接的配置文件。
如果您想打开最近的帖子或其他内容,可以使用Instagram API
这不是我们想要的,但现在是更好的选择...我想:)
答案 2 :(得分:8)
经过简短的搜索并尝试我们都知道“不会工作”我开始工作
Uri uri = Uri.parse("http://instagram.com/mzcoco2you");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
这应该启动你的默认浏览器......你去了。答案是“instagram.com”+“/ UserName”。
答案 3 :(得分: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";
答案 4 :(得分:1)
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)));
}
答案 5 :(得分: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);
我很容易为您自己的目的编辑此代码。设置&#34; String pictureId&#34;到你想要显示的图片的id并设置&#34; String pageName&#34;到您的Instagram帐户的用户名。
用户名部分很明显,但如果您需要帮助来获取图片ID,请查看此picture。
答案 6 :(得分:0)
Intent instaintent = getPackageManager()。getLaunchIntentForPackage(“ com.instagram.android”); instaintent.setData(Uri.parse(“ https://www.instagram.com/insta_save_new/”));
startActivity(instaintent);