stream24

Creator: coderz1093

Last updated:

0 purchases

TODO
Add to Cart

Description:

stream24

24Stream Flutter #
A flutter plugin for creating 24Stream Rich Page widgets.
Installation #
To install add stream24 plugin to your dependencies in your pubspec.yaml
dependencies:
...
stream24: ^0.1.1
...
copied to clipboard
Usage #
Stream24RichPage
A webview widget with rich html contents and automatic height.



Parameter
Type
Description




brand
string
Required. Brand name for the page


productId
string
Required. Prouct ID for the page


retailerDomain
string
Required. Domain of the retailer of the page


templateType
string
Required. Template type of the page


language
string
Language code for the page encoded as country_language. Country code should set according to ISO 3166-1 standard and the language code - to ISO 639-1. Defaults to ru_ru


onError
Function(String)
A function to call when an error is occured.


resultType
Stream24ResultType
Result type of the page. One of .json, .html or .iframe. Defaults to .html


contentType
Stream24ContentType
Content type of the page. One of .shopInShops or .minisite. Defaults to .minisite



getHtml
Returns HTML code of the page as a String.



Parameter
Type
Description




brand
string
Required. Brand name for the page


productId
string
Required. Prouct ID for the page


retailerDomain
string
Required. Domain of the retailer of the page


templateType
string
Required. Template type of the page


language
string
Language code for the page encoded as country_language. Country code should set according to ISO 3166-1 standard and the language code - to ISO 639-1. Defaults to ru_ru


contentType
Stream24ContentType
Content type of the page. One of .shopInShops or .minisite. Defaults to .minisite



checkContenAvailability
You can also check whether there is rich page with given parameters or not, before deciding whether to show it. Parameters are the same as for GetHtml but also accept completion function, which will be triggered when the result returns.



Parameter
Type
Description




brand
string
Required. Brand name for the page


productId
string
Required. Prouct ID for the page


retailerDomain
string
Required. Domain of the retailer of the page


templateType
string
Required. Template type of the page


language
string
Language code for the page encoded as country_language. Country code should set according to ISO 3166-1 standard and the language code - to ISO 639-1. Defaults to ru_ru


contentType
Stream24ContentType
Content type of the page. One of .shopInShops or .minisite. Defaults to .minisite


completion
Function(Bool)
Triggered with input boolean. Boolean contains availability answer



Example #
Example of usage with webview_flutter
using Stream24RichPage
import 'package:flutter/material.dart';
import 'package:stream24/stream24.dart';
import 'package:stream24/rich_page.dart';
import 'package:webview_flutter/webview_flutter.dart';

class WebViewPage extends StatefulWidget {
WebViewPage({super.key});
@override
State<WebViewPage> createState() => _WebViewPageState();
}
class _WebViewPageState extends State<WebViewPage> {
@override
Widget build(BuildContext context) {
return Stream24RichPage(
brand: 'Samsung',
productId: '16651081549',
retailerDomain: 'irshad.az',
templateType: 'master_template',
contentType: Stream24ContentType.shopInShops,
onError: (errorMsg){ print(errorMsg); }
);
}
}

copied to clipboard
OR
using getHtml
import 'package:flutter/material.dart';
import 'package:stream24/stream24.dart';
import 'package:webview_flutter/webview_flutter.dart';

class WebViewPage extends StatefulWidget {
WebViewPage({super.key});
@override
State<WebViewPage> createState() => _WebViewPageState();
}

class _WebViewPageState extends State<WebViewPage> {
late WebViewController controller;
double height = 120;

@override
void initState() {
super.initState();
controller = WebViewController()
..setJavaScriptMode(JavaScriptMode.unrestricted)

// to automatically adjust height add the following block
..addJavaScriptChannel("FlutterWebviewHeight",
onMessageReceived: (JavaScriptMessage msg) {
setState(() {
height = double.tryParse(msg.message) ?? 0;
});
})
//////////////////////////////////////////////////////////////////

//if you want to throw errors on 404 content add the following block
..addJavaScriptChannel("FlutterError",
onMessageReceived: (JavaScriptMessage msg) {

throw Exception(msg.message);
})
//////////////////////////////////////////////////////////////////

..loadHtmlString(Stream24.getHtml(
brand: 'Samsung',
productId: '16651081549',
retailerDomain: 'irshad.az',
templateType: 'master_template',
contentType: Stream24ContentType.shopInShops));
}

@override
Widget build(BuildContext context) {
return SizedBox(
height: height,
child: WebViewWidget(
controller: controller,
),
);
}
}

copied to clipboard
Check content availability
import 'package:stream24/stream24.dart';

//...

Stream24.checkContentAvailability(
brand: 'TestBrand',
retailerDomain: '24ttl.ru',
productId: '920-969696',
templateType: 'master_template',
language: 'ru',
contentType: Stream24ContentType.minisite,
completion: (available) {
print("Content is ${avalable? "available" : "unavailable"}")
});

///...
copied to clipboard

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.