SDK
- Fix: Fix for file download issue.
SDK
- Fix: Fix for unicode issue in js bridge.
SDK
- Fix: Fix for unicode issue in contacts.
SDK
- Update: Improve loading MiniApp from bundle loading time by adding lazy initials.
SDK
- Fix: Improve loading MiniApp from bundle loading time by removing few checks.
SDK
- Fix: Store hash on successfull download of Miniapp in background.
SDK
- Fix: Prevent manifest file being deleted when
MiniAppView.loadFromBundlebeing called.
SDK
- Feature: Added a new interface
downloadMiniAppto download Miniapp from platform in background if needed. - Feature: Added a utility method
isMiniAppCacheAvailable()to know if Miniapp has beend downloaded properly. - Refactor: Updated unzip Miniapp method with optional completion handler that will let the host app know if the download is success.
Sample App
- Feature: Added Menu in list view to Download and check if Miniapp is downloaded already.
SDK
- Feature: Added
manifestparameter to pass aMiniAppManifestobject while callingMiniAppView.loadFromBundle. Sample App - Update: Updated implementation of
MiniAppView.loadFromBundlewith themanifestparameter.
SDK
- Feature: Added
MiniAppMessageBridge.getHostAppThemeColorsin MiniAppMessageBridge for retrieving primary and secondary theme color. - Feature: Added
MiniAppMessageBridge.getIsDarkModein MiniAppMessageBridge for retrieving dark mode status. - Feature: Added
MiniApp.unzipBundleto load MiniApp from bundle. Host app can unzip a MiniApp bundle from asset folder into MiniApp file system. - Feature: Added
MiniAppView.loadFromBundleto load MiniApp from already extracted MiniApp bundle. - Feature: Added
MiniAppMessageBridge.didReceiveMAAnalyticsto receive analytics from MiniApp. - Feature: Added
MiniAppDisplay.sendInfoToHostAppinterface to provideUniversal Bridgefor sending messages from a MiniApp to the HostApp.
Sample App
- Feature: Added implementation of
MiniAppMessageBridge.getHostAppThemeColors. - Feature: Added qa settings to test primary and secondary color.
- Feature: Added Deeplink Support to change settings keys by QR code.
- Feature: Added implementation of
MiniAppMessageBridge.getIsDarkMode. - Feature: Added
MiniAppbutton in Feature page to load a MiniApp from bundle. - Feature: Added
LogsinQApage to show the analytics events come from miniapp.
SDK
- Fix: Support In-app Purchase for old sdk implementation.
SDK
- Feature: Added
in-app-purchasemodule to support android billing sdk. - Feature: Added
InAppPurchaseProviderto get/purchase/consume products, HostApp can also useInAppPurchaseProviderDefaultwhen there is nothing to customize during In-app Purchase.InAppPurchaseProvider.getAllProducts(androidStoreIds: List<String>, onSuccess: (productInfos: List<ProductInfo>) -> Unit, onError: (errorType: MiniAppInAppPurchaseErrorType) -> Unit)InAppPurchaseProvider.purchaseProductWith(androidStoreId: String, onSuccess: (purchaseData: PurchaseData) -> Unit, onError: (errorType: MiniAppInAppPurchaseErrorType) -> UnitInAppPurchaseProvider.consumePurchaseWIth(purhcaseToken: String, onSuccess: (title: String, description: String) -> Unit, onError: (errorType: MiniAppInAppPurchaseErrorType) -> UnitInAppPurchaseProvider.onEndConnection()
- Feature: Added
MiniAppMessageBridge.setInAppPurchaseProviderinterface to enable HostApp to receive events from a In-app Purchase action. - Feature: Added
MiniAppInAppPurchaseErrorTypeto support predefined error types for In-app Purchase. - Feature: Added
MiniAppDisplay.sendJsonToHostAppinterface to provideUniversal Bridgefor sending messages from a MiniApp to the HostApp.
SDK
- Feature: Added
MiniAppMessageBridge.sendJsonToHostAppinterface to provideUniversal Bridgefor sending messages from a MiniApp to the HostApp. - Feature: Added
NativeEventType.MINIAPP_RECEIVE_JSON_INFOto provideUniversal Bridgefor receiving messages from the HostApp to MiniApps. - Feature: Added
sendJsonToMiniAppinMiniAppViewandMiniAppViewImplfor receiving messages from the HostApp to MiniApps. - Update: Added
allEmailListfield inContactto support multiple emails of a specific contact. - Fix: Prevent file creation with zero byte while downloading a file using
MiniAppFileDownloaderwhile host app is offline, also added support for Android 10. - Feature: Added
MiniAppMessageBridge.setMiniAppCloseListenerinterface to enable HostApp to receive event from a MiniApp to close.
Sample App
- Feature: Settings is moved to it's own tab.
- Feature: Multiple MiniAppSdk configurations.
- Feature: Enabled PermissionSettings on MiniApp top bar.
- Update: Move the Query Parameters and Deeplink to General Settings.
- Update: Add/Edit Contact from Dialog to Its Own Activity.
SDK
- Update: Secure Storage performance enhancement.
- Update: Secured DB won't be available if a MiniApp isn't storing any data.
- Update: Clear Storage will delete all the records from the Table and will not delete the DB.
- Fix: Added available size implementation in Secure Storage.
- Fix: Changed the DB creation and load time for a MiniApp.
Sample App
- Fix: Added bug fixes related to Settings page.
SDK
- Feature: Added
MiniAppViewto create multiple MiniApp views. - Feature: Added
MiniAppConfigdata class to hold configuration settings for theMiniAppView. - Deprecated: Old
createandcreateWithUrlinterfaces. - Fix: Made the
MaxStorageSizeLimit in Bytes. - Fix: Returning
onSuccessfor the Bulk Delete even if no items could be deleted. - Update: Refactored the
maxStorageSizeLimitInMBparameter tomaxStorageSizeLimitInBytesinMiniAppSdkConfig.
Sample App
- Feature: Demo App will now use a tabBar instead of a single screen.
- Feature: Added List I and List II for displaying multiple MiniApps at the same time and configurable through settings.
- Feature: Features tab started with URL feature to run MiniApps locally.
SDK
- Feature: Added
languageCodein cached manifest to support localization of manifest. - Fix: Added bug fixes related to Secure storage feature.
Sample App
- Feature: Added bluetooth paired device detection on Android 12+ devices in QA settings screen.
- Feature: Added UI in QA settings screen to upgrade the max storage size limit on runtime.
- Fix: Displayed close confirmation dialog when MiniApp is closed using physical back button.
- Fix: Added proper error message when name and email both inputs are empty in contact settings page.
SDK
- Feature: Added
MiniAppMessageBridge.getMessagingUniqueIdfor supporting MAUID v2 andMiniAppMessageBridge.getMauidin MiniAppMessageDelegate for retrieving MAUID. - Feature: Added support for base64
data:URIs to the File Download feature inMiniAppFileDownloader. - Feature: Added secure storage support for storing, getting and removing data for MiniApps safely. HostApp can clear secured data using
MiniApp.clearSecureStorage. Also,MiniAppSdkConfigis extended withstorageMaxSizeKBto set the maximum available space in bytes for secure storage. - Feature: Added
MiniAppMessageBridge.miniAppShouldClose()function which would help the host app to check if any alert need to be displayed before closing the MiniApp. - Feature: Added
MiniAppTooManyRequestsErrorwhich will be thrown from SDK if any API from platform sends429status code.
Sample App
- Feature: Added implementation of
MiniAppMessageBridge.getMessagingUniqueIdandMiniAppMessageBridge.getMauid. - Feature: Added a
Clear Allbutton to Settings/QA to remove all secure storages. - Feature: Added support to display error popup when there is
MiniAppTooManyRequestsError.
SDK
- Fix: Removed
//from API calls to generate a valid URL inMetaDataApiandManifestApi.
SDK
- Remove: Removed
io.github.rakutentech.sdkutilsdependency and adopted the related changes to MiniApp SDK.
SDK
- Feature: Added interface
MiniAppFileDownloaderto download files in device from miniapp. - Update: Updated
MiniApp.createmethod with optionalfromCachevariable that helps to load the mini-app from cache.
SDK
- Upgraded: Target SDK is now Android 12 (API level 31)
- Upgraded: SDK dependencies to new versions
- androidx.core:core-ktx:1.6.0
- androidx.webkit:webkit:1.4.0
- com.google.android.gms:play-services-ads:20.5.0
- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31
- org.jetbrains.kotlin:kotlin-test:1.5.31
- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2
- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2
- com.squareup.okhttp3:okhttp:4.9.1
- androidx.appcompat:appcompat:1.3.0
- androidx.recyclerview:recyclerview:1.2.1
- Feature: Added interface for requesting Camera permission e.g.
MiniAppCameraPermissionDispatcher. Please see user-guide. - Removed: Functions which were deprecated in previous releases have been removed:
MiniAppMessageBridge.getUniqueId()UserInfoBridgeDispatcher.getAccessToken(miniAppId: String, onSuccess: (tokenData: TokenData) -> Unit, onError: (message: String) -> Unit)UserInfoBridgeDispatcher.getAccessToken(miniAppId: String, accessTokenScope: AccessTokenScope, onSuccess: (tokenData: TokenData) -> Unit, onError: (message: String) -> Unit)
- Removed: Classes which were deprecated in this releases have been removed:
AdMobDisplayer19
- Update: Added a new constructor to pass
hostLocaleinfo inHostEnvironmentInfodata class. - Update: Removed admob 19 support.
- Feature: Added Ad placement beta support. Please see user-guide.
- Update: Renamed
AdMobDisplayer20toAdMobDisplayer.
Sample App
- Upgraded: Target SDK is now Android 12 (API level 31)
- Upgraded: Sample App dependencies to new versions
- androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1
- androidx.activity:activity-ktx:1.2.4
- com.github.bumptech.glide:glide:4.12.0
- com.google.android.material:material:1.4.0
- com.google.code.gson:gson:2.8.9
SDK
- Fix: Unable to launch a mini app while the device is offline
SDK
- Feature: Added
languageCodeparameter inMiniApp.getMiniAppManifestto support for internationalized manifest. - Feature: Added
hostLocaleinHostEnvironmentInfoto provide default language value from Host App. - Feature: Added
promotionalImageUrlandpromotionalTextin MiniAppInfo model. - Feature: Added support for taking picture from camera in Mini App.
Sample App
- Feature: Added production and staging toggle to change environments.
- Feature: Adding Sharing option to display the promotional content via
MiniAppDisplay.
SDK
- Feature: Added
getHostEnvironmentInfofunction inMiniAppMessageBridgeto provide environment information to Mini App. - Feature: Added
dispatchNativeEventfunction inMiniAppMessageBridgeto send events to Mini App. - Feature: Added
rakuten.miniapp.device.FILE_DOWNLOADcustom permission before downloading file attachment in MiniApp.
Sample App
- Feature: Added dynamic deeplink support to test deeplink urls from Mini App.
SDK
- Feature: Added
admob-latestmodule to support latest admob sdk. - Feature: Added
getMiniAppInfoByPreviewCodeinterface to get MiniAppInfo by preview code. - Feature: Added optional public key pinning through
MiniAppSdkConfig. - Feature: Added additional rat events to track sdk feature usage.
- Feature: Added signature verification process before downloading a MiniApp. HostApp also can enable the settings of SDK to verify signature. Please see user-guide.
Sample App
- Feature: User can edit contact name and email in App Settings.
- Feature: User can see access token scopes requested for the RAE audience in first-time screen.
- Feature: User can scan qr code and preview miniapp in demo app.
- Feature: Added deeplink support to open miniapp in demo app by qrcode scan.
- Feature: Added additional rat events to track the demo app by adding custom views.
- Feature: Added signature verification requirement enabling option in App Settings.
- Fix: Prevent manifest merger failure when Host App already has implemented a FileProvider.
- Feature: Added support for downloading files in a Mini App, and added
MiniAppDownloadNavigatorinterface for overriding the default file download behavior.
SDK
- Feature: Added
getPointsinterface inUserInfoBridgeDispatcherto request for user's point with checkingrakuten.miniapp.user.POINTScustom permission. - Feature: Added support for using
".jpg"and multiple types e.g.".jpg,.png"in the accept field of the file input. - Update: Updated
MessageToContactto support an optional message to the user for the contact picker capability. - Update: Included technical improvement in manifest file verification process.
Sample App
- Feature: Added a screen to input user's points which can be invoked using
getPointsinterface. - Update: Display a banner message on contact picker ui while sending message to single/multiple contacts.
SDK
- Feature: Update
MiniAppSdkConfigclass to accept list ofMiniAppAnalyticsConfigto send analytics in multiple account. - Change: Added
getAccessTokenresult with new Error type i.eMiniAppAccessTokenErrorto support predefined error types, previousgetAccessTokenis deprecated and can not be used anymore. - Fix: Prevent exception during calling
onErrorasynchronously ingetUniqueId. - Update: Supported "Update codebase" functionality for preview mode.
- Update: Included technical improvement in custom permission and manifest information caching.
Sample App
- Feature: Added QA option in settings screen to test
authorizationFailureErrorandcustomerror type.
SDK
- Deprecated: Old
getUniqueIdinterface. - Feature: Added
getUniqueIdnew interface for invoking data usingonSuccessandonError. - Feature: Support
mailtouri address. See this. - Feature: Added
rakuten.miniapp.user.action.SEND_MESSAGEcustom permission and applied toChatBridgeDispatcher.sendMessageToContactId.
Sample App
- Change: Replaced the implementation of
getUniqueIdusing new interface.
SDK
- Feature: Added several chatting interfaces e.g.
sendMessageToContact,sendMessageToContactIdandsendMessageToMultipleContactsinChatBridgeDispatcherfor sending message to single or multiple contacts, even to a specific contact id. HostApp can get the message usingMessageToContactobject.
Sample App
- Feature: Added implementations of
ChatBridgeDispatcher.sendMessageToContact,ChatBridgeDispatcher.sendMessageToContactIdandChatBridgeDispatcher.sendMessageToMultipleContactswith the demo UI.
SDK
- Feature: Support name and email as optional in Contact.
- Deprecated:
getAccessTokenwith only miniapp id verfication. - Feature: Add a new
getAccessTokenfunction under custom permission and support audience/scope validation. - Feature: Added
MiniAppFileChooserto choose a file which is requested using HTML forms with 'file' input type within a miniapp, HostApp can also useMiniAppFileChooserDefaultwhen there is nothing to customize during file choosing. - Change: Updated
MiniApp.create&MiniApp.createWithUrlto includeMiniAppFileChooserto choose a file within a miniapp.
Sample App
- Feature: Input and display name, email of Contact.
SDK
- Removed: Cleanup deprecated components before v3.0.0. Please replace usages in your code as follows:
| Before v3.0.0 | v3.0.0 |
|---|---|
isTestMode |
isPreviewMode |
rasAppId |
rasProjectId |
MiniAppMessageBridge.requestPermission |
MiniAppMessageBridge.requestDevicePermission |
getUserName(): String |
getUserName(onSuccess, onError) |
getProfilePhoto(): String |
getProfilePhoto(onSuccess, onError) |
- Change: Support Android 7 - API 24 as minimum version.
- Change: Convert
UserInfoBridgeDispatcherinto interface. Usages in your code ofobject : UserInfoBridgeDispatcher()should be changed toobject : UserInfoBridgeDispatcher. - Change: Update
MiniApp.createto check the required permissions in Mini App's manifest have been granted or not before creating the Mini App. - Change: Maven Group ID changed to
io.github.rakutentech.miniapp. You must update your dependency declaration toio.github.rakutentech.miniapp:miniapp:3.0.0. - Change: Migrated publishing to Maven Central due to Bintray/JCenter being shutdown. You must add
mavenCentral()to yourrepositories. - Fix: Load ad error when do re-try loading.
- Fix: Failure when simultaneous custom permission requests are received.
- Feature: Added
MiniApp.getMiniAppManifestinterface to retrieve the manifest of a MiniApp. - Feature: Added
MiniApp.getDownloadedManifestinterface to retrieve currently downloaded manifest of a MiniApp.
Sample App
- Feature: Added first-time launching screen to show the manifest information before downloading/launching a MiniApp.
SDK
- Feature: Added
getUserName,getProfilePhotonew interfaces for invoking data usingonSuccessandonError. - Feature: Support analytics SDK with event tracking.
- Deprecated: Old
getUserName,getProfilePhotointerfaces. - Feature: Added
queryParams: StringusingMiniApp.createandMiniApp.createWithUrlfor appending it with the miniapp's url. - Feature: Added
MiniAppMessageBridge.requestDevicePermissionfor requesting device permission e.g. Location - Change: Deprecated
MiniAppMessageBridge.requestPermissionand changed to be optional to implement. - Fix: Dialog cancel event when touch outside area.
Sample App
- Change: Replaced the implementation of
getUserName,getProfilePhotousing new interfaces. - Feature: Added input option in settings screen to keep query parameters to be passed using
MiniApp.createandMiniApp.createWithUrl. - Feature: Added crash reports integration with app-center diagnostics.
- Fix: Correct the group and order display of miniapp list.
- Change: Added the usage of
MiniAppMessageBridge.requestDevicePermission.
- Fix: Exception for miniapp verification failed. See this.
SDK
- Fix: MiniApp view did not display due to obfuscation code guard.
SDK
- Feature: Added
rakuten.miniapp.device.LOCATIONcustom permission. - Feature: Added
getContacts()interface inUserInfoBridgeDispatcherfor receiving list of contact IDs. - Feature: Support loading miniapp by url. This feature is only for QA purpose to let developers have a quick look at their miniapps.
- Change: Remove
app_nameproperty.
Sample App
- Feature:
rakuten.miniapp.device.LOCATIONpermission as "Location" in custom permissions settings screen is visible now. - Feature: Support loading miniapp by url. This enables developers to test while their miniapps are still in development.
- Change: Added
getContacts()implementation for sending the list of contact IDs. - Change: Disable Google backup.
SDK
- Feature: Mini App can call media execution play/pause programmatically.
- Feature: Added
MiniApp#create(appInfo: MiniAppInfo, miniAppMessageBridge: MiniAppMessageBridge, miniAppNavigator: MiniAppNavigator? = null). - Feature: Officially support Preview Mode.
- Change: Added the default implementation for external link handler. Using custom tab.
- Change:
isTestModehas been deprecated and replaced withisPreviewModeto adopt the Preview mode. See this. - Change:
com.rakuten.tech.mobile.ras.AppIdhas been deprecated, usecom.rakuten.tech.mobile.ras.ProjectIdinstead. See this.
Sample App
- Change: Updated setting of external webview.
- Change: Used
isPreviewModein sample app. "Preview Mode" switch in the settings screen is visible now. - Change: Updated sample app Manifest configuration with replacing RAS App ID by Project ID.
- Change: Updated setting permission screen with permission preview.
SDK
- Feature: Provide the access token to miniapp. You can implement
MiniAppMessageBridge.getAccessTokento use this feature. - Feature: Added default UI support for managing custom permissions in case
requestCustomPermissionshasn't been implemented in Host App. - Feature: Added
MiniAppHasNoPublishedVersionExceptionandMiniAppNotFoundExceptionexception types toMiniApp.createandMiniApp.fetchInfo.
Sample App
- Feature: Added "Access Token" configuration options to settings screen.
- Feature: Show error dialog instead of Toast for errors in settings screen.
SDK
- Feature: Handle the screen orientation change request from miniapp.
- Fix: Clean up fullscreen view when exit miniapp.
MiniAppDisplay.destroyViewis mandatory for single activity architecture.
Sample App
- Fix: Disable pull to refresh while searching.
SDK
- Feature: Load and display ads from miniapp. See this.
- Feature: Added
getUserName()interface inUserInfoBridgeDispatcherfor receiving user name if the required permission has been granted e.g. "rakuten.miniapp.user.USER_NAME". - Feature: Added
getProfilePhoto()interface inUserInfoBridgeDispatcherfor receiving profile photo url if the required permission has been granted e.g. "rakuten.miniapp.user.PROFILE_PHOTO". - Fix:
tel:links weren't functioning correctly on API 23. - Fix:
tel:links weren't functioning in the external WebView.
Sample App
- Feature: Added sample implementation for receiving username and profile photo to Mini app.
- Fix: Made the name field optional on the Profile settings screen.
SDK
- Feature: Added public interface to read and store the custom permissions inside Android SDK. See this.
- Feature: Added interface for sharing content from a mini app. See this.
- Feature: Added
listDownloadedWithCustomPermissions()public interface that enables the host app to retrieve the list of downloaded mini-apps and their respective custom permissions. See this. - Feature: Added capability to open external links in an external browser or WebView. By default, all external links should open in an external WebView. See this.
- Fix: Added header to all API requests to accept content encoding. This is to support caching which is done by the API.
Sample App
- Feature: Added example for showing list of custom permissions (on request from Mini app) and response back to Mini app.
- Feature: User name, profile photo, and contact list can be configured in the settings screen.
- Feature: Added sample app implementation to revoke/manage the custom permissions for the list of downloaded mini apps.
SDK
- Feature: Support telephone hyperlink in miniapp. See this.
- Feature: Support webview video fullscreen.
- Fix:
MiniAppSdkExceptionhad a null message in some cases. - Fix: Some Mini Apps which use sub-directories were failing to unzip.
SDK
- Feature: Mini App is now downloaded as a ZIP archive and extracted. This should improve the initial launch time on a Mini App with many files.
- Feature: Added custom dialog for
window.alert,window.prompt, andwindow.confirm. These look and behave the same as the default WebView dialogs with the exception that the dialog title is now set to the Mini App's name. - Upgraded:
minSdkVersionhas been bumped up to 23 (Android 6.0). - Removed:
MiniAppDisplay#getMiniAppView(),MiniApp#create(info: MiniAppInfo)has been removed. - Removed:
MiniApp#create(info: MiniAppInfo, miniAppMessageBridge: MiniAppMessageBridge)has been removed.
Sample App
- Feature: Added search by Mini App name to listing view.
- Fix: Display warning message when an invalid value is input for "Host App Id" or "Subscription Key".
SDK
- Upgraded build setup and some internal dependencies
- Added support for customization of user agent information. See this.
- Added feature to support backward & forward navigation support in a mini app.
- Added support for javascript of type module e.g.
<script src="some_module.js" type="module"></script>would render just fine now even though the mimetype is missed out by the web technologies for this scenario. - Added feature to obtain geolocation data in a mini app
- Hotfix for redirection over custom scheme and http
Sample App
- Updated styling of the mini app list
- Updated App's setting screen with build information
- Demo usage of customized user agent information
- Add navigation into mini app. See this.
SDK
- Bugfix:
selectanddateinput elements weren't working correctly. - Deprecated
MiniAppDisplay#getMiniAppView()and addedMiniAppDisplay#getMiniAppView(activityContext: Context). You now must provide an Activity Context when retrieving theViewfor the Mini App. This is related to the bugfix forselectanddateinputs - if you use the deprecated method, then these elements will not work correctly.
Sample App
- Display first time setup instructions on first launch of App.
- Added JavaScript bridge for passing data between Mini App and Host App. Your App now must implement
MiniAppMessageBridgeand provide the implementation when callingMiniApp#create. See this - Deprecated
MiniApp#create(info: MiniAppInfo). Your App should instead useMiniApp#create(info: MiniAppInfo, miniAppMessageBridge: MiniAppMessageBridge). - Added
getUniqueIdfunction toMiniAppMessageBridge. This function should provide a unique identifier (unique to the user and device) to Mini Apps. - Added support for custom scheme URL redirect. The URL
mscheme.MINI_APP_ID://miniapp/index.htmlcan be used by a Mini App for redirection. This matches the URL used in the iOS Mini App SDK.
- Initial release