Documentation Index
Fetch the complete documentation index at: https://docs.joinmassive.com/llms.txt
Use this file to discover all available pages before exploring further.
Technical Requirements
| |
|---|
| Tizen Version | 3.0 or later |
| Tizen TV SDK | Latest version |
Features Needed
|
|---|
http://tizen.org/feature/web.service |
Permissions Needed
|
|---|
http://tizen.org/privilege/internet |
http://tizen.org/privilege/messageport |
http://tizen.org/privilege/application.launch |
http://tizen.org/privilege/tv.inputdevice |
http://tizen.org/privilege/filesystem.read |
http://tizen.org/privilege/filesystem.write |
http://tizen.org/privilege/alarm |
http://tizen.org/privilege/system |
Downloads
| |
|---|
| Tizen SDK | Download |
| Tizen Sample Application | Download |
Integration Guide
Sample application
Massive SDK comes with a sample application showing project configuration, API integration, and consent screen.
To run the app, follow these steps:
- Install the Tizen TV SDK.
- Extract the sample app and the SDK package provided by Massive.
- Copy SDK files to the sample app:
- Copy
MassiveClient/MassiveClient.js to the js/ directory
- Copy
MassiveService/MassiveService.js to the service/ directory (create if needed)
- Copy the API token from your Applications List.
- Set the token value to the
API_TOKEN constant in js/main.js.
- Create a new partner level certificate in the Tizen Certificate Manager.
- Create a new Tizen TV web application project in the Tizen IDE.
- Replace the project files with the sample application files.
- Build and run the app in the emulator.
Dependency configuration
The Massive SDK for Tizen is distributed in two separate packages:
- MassiveSDK-Tizen-X.X.X.zip - Contains the SDK files needed for integration
- SampleApp-Tizen-X.X.X.zip - Contains a complete sample application
To integrate the SDK into your project:
-
Extract the
MassiveSDK-Tizen-X.X.X.zip file to get the SDK files.
-
Copy the following files to your project:
MassiveClient/MassiveClient.js to your js/ directory
MassiveService/MassiveService.js to your service/ directory
-
Configure your
config.xml file to use the service:
<tizen:service id="your_package_id.Service">
<tizen:content src="service/MassiveService.js"/>
<tizen:name>MassiveService</tizen:name>
<tizen:description>Massive SDK Web Service</tizen:description>
<tizen:category name="http://tizen.org/category/service"/>
</tizen:service>
Note: Replace your_package_id with your actual package ID.
-
Add required features and privileges to
config.xml:
<feature name="http://tizen.org/feature/web.service"/>
<tizen:privilege name="http://tizen.org/privilege/system"/>
<tizen:privilege name="http://tizen.org/privilege/internet"/>
<tizen:privilege name="http://tizen.org/privilege/messageport"/>
<tizen:privilege name="http://tizen.org/privilege/application.launch"/>
<tizen:privilege name="http://tizen.org/privilege/tv.inputdevice"/>
<tizen:privilege name="http://tizen.org/privilege/filesystem.read"/>
<tizen:privilege name="http://tizen.org/privilege/filesystem.write"/>
<tizen:privilege name="http://tizen.org/privilege/alarm"/>
Integration to the app
1. Get the API token
Massive SDK API token is available in your Applications List.
2. Import MassiveClient
Import the MassiveClient module in your JavaScript file:
import { MassiveClient } from './MassiveClient.js';
Alternative: If your environment doesn’t support ES6 modules, you can import it in your HTML file:
<script type="module">
import { MassiveClient } from "./js/MassiveClient.js";
// Make it globally available
window.MassiveClient = MassiveClient;
</script>
3. Initialize MassiveClient
Initialize the client with your API token and handle the result in the callback:
let massiveClient = new MassiveClient();
massiveClient.init(API_TOKEN, function(result) {
if (result) {
// The SDK is initialized
} else {
// The SDK initialization failed
}
});
If you made it globally available:
let massiveClient = new window.MassiveClient();
4. Request consent from the user
Before starting the client, obtain user consent for the terms of resource exchange. Please see our launch checklist for additional details.
Example consent text:
To remove ads and get free content, please let Massive use a small amount of your device's free resources and IP
address to download public web data from the internet.
This supports the development of Application and helps us to improve our services.
No personal information is collected except your IP address.
Your participation is optional, and you may opt out anytime by accessing Settings (see Massive's FAQ for details).
Pressing Accept indicates that you agree to Massive's license and privacy policy.
5. Start usage after consent
After receiving the user’s consent, start usage using the start() method:
// Check if there is user consent to use Massive
if (isUserConsentGiven()) {
massiveClient.start();
}
6. Stop usage
To stop the SDK usage:
7. Query SDK status
You can query the SDK status at any time after initialization:
massiveClient.status().then((result) => {
console.log(result);
// Handle status
}).catch((error) => {
console.error(error);
});
Possible status values:
Uninitialized
Initializing
Initialized
Started
Stopped
Error
Technical details
-
Service architecture
The Massive SDK for Tizen uses a web service application that runs as a separate service component in your application. This service handles the core operations independently of the main application, providing better performance and stability.
-
Message port communication
The SDK uses Tizen’s message port API for communication between your application and the Massive service. This ensures secure and efficient data exchange between components.
-
One-time initialization
The SDK should be initialized only once per application session. The initialization establishes communication with the service and prepares the SDK for operation. Subsequent calls to
init will return the current state without reinitializing.
-
User consent before starting usage
Before starting the SDK usage for the first time (using the
start() method), it is mandatory to obtain user consent for the terms of resource exchange. This aligns with user privacy and control principles. Ensure that your application includes a clear and understandable consent mechanism.
if (isUserConsentGiven) {
massiveClient.start();
}
-
Starting and stopping the client
Initialization of the
MassiveClient with the init() method does not automatically start the usage.
It prepares the SDK for use but does not begin its operation.
To ensure that Massive is running, the start() method must be called after initialization. The start() method is designed to be idempotent, meaning it is safe to call multiple times. If the service is already started, subsequent calls will have no effect.
The stop() method is used to stop the service operation. After calling stop(), you can restart the client by calling the start() method again.
-
Persistent service
The Massive service is designed to persist across application sessions. Once initialized and started, it will continue to operate even when the main application is closed, subject to system resource management policies.
-
Certificate requirements
To deploy applications with the Massive SDK on Tizen devices, you need a partner-level certificate. This certificate must be created using the Tizen Certificate Manager and is required for accessing certain system privileges needed by the SDK.
-
Package ID configuration
When integrating the SDK, ensure that the service ID in your
config.xml matches your application’s package ID. This is crucial for proper service registration and message port communication.
-
Error handling
The SDK provides comprehensive error handling through callbacks and promise rejections. Always implement proper error handling to ensure a smooth user experience:
massiveClient.init(API_TOKEN, function(result) {
if (result) {
// Success handling
} else {
// Error handling - initialization failed
}
});
-
Status monitoring
Regular status monitoring helps ensure the SDK is operating correctly. The
status() method returns a promise that resolves with the current SDK state, allowing you to implement appropriate UI updates or error recovery mechanisms.
-
Resource management
The SDK is designed to operate efficiently within the resource constraints of Tizen TV devices. It manages network and computational resources carefully to avoid impacting the user experience of your application or the overall TV performance.