hotchemi / Android-Rate

Android-Rate is a library to help you promote your android app by prompting users to rate the app after using it for a few days.
http://hotchemi.github.io/Android-Rate
MIT License
720 stars 216 forks source link

Customize the store navigation #124

Open KevinYaoooooo opened 7 years ago

KevinYaoooooo commented 7 years ago

Hi Hotchemi,

Your library is very cool, simple, easy to use, but could you provide a interface that we could set a customized intent to apprate dialog? that way we can jump to other app store too. Or you can just write a Implicit intent that can open a chooser activity which shows all the store app avaliable on your phone, it would be nice!!

hendrawd commented 6 years ago

I think this feature would be great for flexibility of this library

AlexanderLS commented 6 years ago

@KevinYaoooooo @hendrawd AndroidRate release 1.1.5 supports:

Google Play, Amazon Appstore, Cafe Bazaar, Mi Appstore (Xiaomi Market), Samsung Galaxy Apps, SlideME Marketplace, Tencent App Store, Yandex.Store

AppRate.with(this).setStoreType(StoreType.GOOGLEPLAY); // Google Play
AppRate.with(this).setStoreType(StoreType.AMAZON);     // Amazon Appstore
AppRate.with(this).setStoreType(StoreType.BAZAAR);     // Cafe Bazaar
AppRate.with(this).setStoreType(StoreType.MI);         // Mi Appstore (Xiaomi Market)
AppRate.with(this).setStoreType(StoreType.SAMSUNG);    // Samsung Galaxy Apps
AppRate.with(this).setStoreType(StoreType.SLIDEME);    // SlideME Marketplace
AppRate.with(this).setStoreType(StoreType.TENCENT);    // Tencent App Store
AppRate.with(this).setStoreType(StoreType.YANDEX);     // Yandex.Store

Apple App Store

AppRate.with(this).setStoreType(StoreType.APPLE, long); // Apple App Store,
                                                        // long - your Apple App Store application ID
                                                        // e. g. 284882215 for Facebook
                                                        // (https://itunes.apple.com/app/id284882215)

BlackBerry World

AppRate.with(this).setStoreType(StoreType.BLACKBERRY, long); // BlackBerry World,
                                                             // long - your BlackBerry World application ID
                                                             // e. g. 50777 for Facebook
                                                             // (https://appworld.blackberry.com/webstore/content/50777)

Chinese app stores

The first Chinese app store found on the user device will be used. The Library doesn't check the availability of your application on the app store.

AppRate.with(this).setStoreType(StoreType.CHINESESTORES); // 19 chinese app stores: 腾讯应用宝, 360手机助手,
// 小米应用商店, 华为应用商店, 百度手机助手, OPPO应用商店, 中兴应用商店, VIVO应用商店, 豌豆荚, PP手机助手, 安智应用商店,
// 91手机助手, 应用汇, QQ手机管家, 机锋应用市场, GO市场, 宇龙Coolpad应用商店, 联想应用商店, cool市场

Other store

AppRate.with(this).setStoreType(String); // Any other store,
                                         // String - an RFC 2396-compliant URI to your app
                                         // e. g. "https://otherstore.com/app?id=com.yourapp"
                                         // or "otherstore://apps/com.yourapp"
hendrawd commented 6 years ago

The support for the other app stores is good, but can we set custom action to the button? For example, I want to open my custom RateActivity when the Rate button clicked.

AlexanderLS commented 6 years ago

@hendrawd Thanks for your idea. We added this feature to the AndroidRate Release 1.1.6:

Сustom Intents

You can set custom action to the Rate button. For example, you want to open your custom RateActivity when the Rate button clicked.

AppRate.with(this).setStoreType(Intent[]); // Any custom intents, Intent[] - array of intents,
                                           // first will be executed (startActivity(intents[0])),
                                           // if first fails, second will be executed (startActivity(intents[1])), etc.