項(xiàng)目中需要跳轉(zhuǎn)Google Play商店
原理十分簡(jiǎn)單,構(gòu)建一個(gè)ACTION_VIEW標(biāo)記的Intent浮驳,并給一個(gè)如下結(jié)構(gòu)的 Uri 即可:
"market://details?id=" + getPackageName() //商店中使用包名來(lái)唯一標(biāo)識(shí)區(qū)分應(yīng)用
在 Android 平臺(tái)上蛔翅,正常情況下手機(jī)中的應(yīng)用商店應(yīng)該是 Google Play
但是由于各種你懂我也懂的原因蔽氨,國(guó)內(nèi)基本上無(wú)法使用 Google Play 服務(wù)踢京。
好在廣泛的第三方應(yīng)用市場(chǎng)大多都實(shí)現(xiàn)了這個(gè)接口椎椰。
代碼注釋很詳細(xì):
//這里開(kāi)始執(zhí)行一個(gè)應(yīng)用市場(chǎng)跳轉(zhuǎn)邏輯,默認(rèn)this為Context上下文對(duì)象
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://details?id=" + getPackageName())); //跳轉(zhuǎn)到應(yīng)用市場(chǎng)蜘澜,非Google Play市場(chǎng)一般情況也實(shí)現(xiàn)了這個(gè)接口
//存在手機(jī)里沒(méi)安裝應(yīng)用市場(chǎng)的情況施流,跳轉(zhuǎn)會(huì)包異常,做一個(gè)接收判斷
if (intent.resolveActivity(getPackageManager()) != null) { //可以接收
startActivity(intent);
} else { //沒(méi)有應(yīng)用市場(chǎng)鄙信,我們通過(guò)瀏覽器跳轉(zhuǎn)到Google Play
intent.setData(Uri.parse("https://play.google.com/store/apps/details?id=" + getPackageName()));
//這里存在一個(gè)極端情況就是有些用戶瀏覽器也沒(méi)有嫂沉,再判斷一次
if (intent.resolveActivity(getPackageManager()) != null) { //有瀏覽器
startActivity(intent);
}
}
需要注意的就是,如果界面跳轉(zhuǎn)失敗扮碧,會(huì)拋出異常,因此能否跳轉(zhuǎn)需要進(jìn)行判斷杏糙。
根據(jù)以上慎王,同理使用以下Uri進(jìn)行替換:
Uri.parse("market://search?q=pub:Author Name"); //跳轉(zhuǎn)到商店搜索界面,并搜索開(kāi)發(fā)者姓名
Uri.parse("market://search?q=Keyword"); //跳轉(zhuǎn)到商店搜索界面宏侍,并搜索關(guān)鍵詞