需求:App內(nèi)調(diào)起社交平臺(tái)的“官方賬號(hào)頁面”,如果用戶安裝有對(duì)應(yīng)社交App,直接調(diào)起;否則則通過瀏覽器方式打開網(wǎng)頁。
Facebook,Twitter,Youtube,Instagram
/**
* 跳轉(zhuǎn) Facebook
* @param context 上下文
* @return 跳轉(zhuǎn) intent
*/
public static Intent newFacebookProfileIntent(Context context) {
PackageManager packageManager = context.getPackageManager();
Intent intent = new Intent(Intent.ACTION_VIEW);
try {
int versionCode = packageManager.getPackageInfo("com.facebook.katana", 0).versionCode;
if (versionCode >= 3002850) { // newer versions of fb app
intent.setData(Uri.parse("fb://facewebmodal/f?href=https://www.facebook.com/用戶名"));
} else { // older versions of fb app
intent.setData(Uri.parse("fb://page/用戶名"));
}
// 部分機(jī)型無法調(diào)起,facebook,再次判斷,失敗則瀏覽器方式顯示
if (intent.resolveActivity(context.getPackageManager()) != null) {
return intent;
} else {
intent.setData(Uri.parse("https://www.facebook.com/用戶名"));
return intent; // normal web url
}
} catch (PackageManager.NameNotFoundException e) {
intent.setData(Uri.parse("https://www.facebook.com/用戶名"));
return intent; // normal web url
}
}
/**
* 跳轉(zhuǎn) Twitter
* @param context 上下文
* @return 跳轉(zhuǎn) intent
*/
public static Intent newTwitterProfileIntent(Context context) {
Intent intent = new Intent(Intent.ACTION_VIEW);
try {
if (context.getPackageManager().getPackageInfo("com.twitter.android", 0) != null) {
// 推特用戶id(純數(shù)字),id獲取方法:(http://gettwitterid.com/)
intent.setData(Uri.parse("twitter://user?user_id=推特用戶id"));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
return intent;
}
} catch (PackageManager.NameNotFoundException ignored) {
}
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.twitter.com/用戶名"));
return intent;
}
/**
* 跳轉(zhuǎn) Youtube
* @param context 上下文
* @return 跳轉(zhuǎn) intent
*/
public static Intent newYoutubeProfileIntent(Context context) {
Intent intent = new Intent(Intent.ACTION_VIEW);
// 瀏覽器地址
String URL_YOUTUBE = "https://www.youtube.com/channel/用戶channel ID";
// app 內(nèi)Action
String URL_YOUTUBE_INAPP = "vnd.youtube.com/channel/用戶channel ID";
intent.setData(Uri.parse(URL_YOUTUBE_INAPP));
if (intent.resolveActivity(context.getPackageManager()) != null) {
return intent;
} else {
intent.setData(Uri.parse(URL_YOUTUBE));
return intent;
}
}
/**
* Instagram
* @param context 上下文
* @return intent
*/
public static Intent newInstagramProfileIntent(Context context) {
PackageManager packageManager = context.getPackageManager();
Intent intent = new Intent(Intent.ACTION_VIEW);
try {
if (packageManager.getPackageInfo("com.instagram.android", 0) != null) {
intent.setData(Uri.parse("http://instagram.com/_u/用戶名"));
intent.setPackage("com.instagram.android");
return intent;
}
} catch (Exception ignored) {
}
intent.setData(Uri.parse("http://www.instagram.com/用戶名"));
return intent;
}
使用
Intent intent = newFacebookProfileIntent(mContext);
// 判斷是否可用,防止連瀏覽器都沒有的用戶觸發(fā)崩潰
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。