1. 程式人生 > >Android 應用商店評分+APP分享

Android 應用商店評分+APP分享

注:ionic-native還有這樣的一個外掛:Market   描述:Opens an app's page in the market place (Google Play, App Store) (我沒去試過,估計也差不多的功能呱)

開發中,有時需要在應用中新增這樣的功能:指引使用者跳轉到應用市場去評價應用,或者更新版本,或者下載作者開發或推薦的其他應用等Market連結功能。程式碼如下:

  1. Uri uri = Uri.parse("market://details?id=" + getPackageName());  
  2. Intent intent = new Intent(Intent.ACTION_VIEW,uri);  
  3. startActivity(intent);  

從中可以看到,利用Uri物件和Intent實現即可!

使用示例:

《一》通過packageName定位至Market對應App詳情介紹頁:

http://market.Android.com/details?id= your packageName

或者

market://details?id=  your packageName

《二》通過packageName搜尋App,獲取得到的App列表:

http://market.android.com/search?q=pname:<Java包名>

或者

market://search?q=pname:<java包名>


《三》通過developer名稱搜尋App,獲取得到的App列表:

http://market.android.com/search?q=pub:<開發者名稱>

或者

market://search?q=pub:<開發者名稱>

《四》通過關鍵詞搜尋App,獲取得到的App列表:

http://market.android.com/search?q=<關鍵詞>

或者

market://search?q=<關鍵詞>

不過,這種方法將顯示搜尋到的標題(及內容?)中包含此關鍵詞的所有App列表,需注意的是:這個是語言相關的,如果App中有對應於你機器的語言,那麼你就要以這個語言搜才容易找到,搜尋其他語言版本的名稱應該是找不到該軟體的,所以這種方法不推薦使用。

《五》綜合搜尋:

上述搜尋相關的內容可以簡單組合起來做更精確的篩選,不過通常情況下很少會用到。

例如:market://search?q=lucky wheel pub:xianfeng


[java] view plain copy  print?
  1. /** 
  2.  * market://search?q=pname:<package> 
  3.  */
  4. privatevoid startSearchPNAMEIntent(){  
  5.     String pkgname;  
  6.     if(mEditText != null){  
  7.         pkgname = mEditText.getText().toString();  
  8.     }else{  
  9.         return;  
  10.     }  
  11.     Uri uri = Uri.parse("market://search?q=pname:"+pkgname);           
  12.     Intent it = new Intent(Intent.ACTION_VIEW, uri);           
  13.     startActivity(it);   
  14. }  
  15. /** 
  16.  * market://search?q=pnames:<package> 
  17.  */
  18. privatevoid startSearchPNAMESIntent(){  
  19.        String pkgnames;  
  20.     if(mEditText != null){  
  21.         pkgnames = mEditText.getText().toString();  
  22.     }else{  
  23.         return;  
  24.     }  
  25.     Uri uri = Uri.parse("market://search?q=pnames:"+pkgnames);           
  26.     Intent it = new Intent(Intent.ACTION_VIEW, uri);           
  27.     startActivity(it);   
  28. }  
  29. /** 
  30.  * market://search?q=pub:Your Publisher Name 
  31.  */
  32. privatevoid startSearchPUBIntent(){  
  33.        String pub;  
  34.     if(mEditText != null){  
  35.         pub = mEditText.getText().toString();  
  36.     }else{  
  37.         return;  
  38.     }  
  39.     Uri uri = Uri.parse("market://search?q=pub:"+pub);           
  40.     Intent it = new Intent(Intent.ACTION_VIEW, uri);           
  41.     startActivity(it);   
  42. }  
  43. /** 
  44.  * market://details?id=<package_name> 
  45.  */
  46. privatevoid startSearchIDIntent(){  
  47.        String id;  
  48.     if(mEditText != null){  
  49.         id = mEditText.getText().toString();  
  50.     }else{  
  51.         return;  
  52.     }  
  53.     Uri uri = Uri.parse("market://search?id="+id);           
  54.     Intent it = new Intent(Intent.ACTION_VIEW, uri);           
  55.     startActivity(it);   
  56. }  

專案中要有一個給軟體評分的功能,一個很常見,很簡單的功能,卻費了我不小功夫。需要實現的效果如下:


本來以為一般的軟體都會有“去評分”、“親,給個好評”這樣的功能,但是在網上搜了搜竟沒有搜到,問了三個群外加5個童鞋,分析log,反編譯看原始碼,終於找到了這個uri,獲取他真不容易啊。

  1. Uri uri = Uri.parse("market://details?id="+getPackageName());  
  2. Intent intent = new Intent(Intent.ACTION_VIEW,uri);  
  3. intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
  4. startActivity(intent);  

通過以上程式碼就能夠列出您手機上所安裝的所有應用市場(如:google player、豌豆莢、360手機助手等),讓您選擇。

加點福利吧,把呼叫分享的程式碼也貼出來,免得以後到處找:

  1. Intent sendIntent = new Intent();  
  2. sendIntent.setAction(Intent.ACTION_SEND);  
  3. sendIntent.setType("text/*");  
  4. sendIntent.putExtra(Intent.EXTRA_TEXT, contentEditText.getText().toString());  
  5. startActivity(sendIntent);  
Intent intent = new Intent(Intent.ACTION_SEND);
			intent.setType("text/plain");
			intent.putExtra(Intent.EXTRA_SUBJECT, "分享");
			intent.putExtra(Intent.EXTRA_TEXT, 分享的內容);
			intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
			this.startActivity(Intent.createChooser(intent, "分享"));