stream
Stream模块操作流应用。
方法:
- open: 启动流应用
- activate: 流应用激活统计
- list: 已下载流应用列表
- preload: 预加载流应用
- remove: 删除流应用
- setRestoreState: 设置流应用恢复运行的参数
- freetrafficRequest: 请求免流量验证码
- freetrafficBind: 免流量绑定手机号
- freetrafficRelease: 解除免流量绑定
- freetrafficInfo: 获取免流量状态信息
- freetrafficIsValid: 免流量是否生效
事件:
- onfreetrafficStateChange: 免流量状态变化事件
对象:
- StreamOptions: JSON对象,启动流应用参数
- StreamRestoreOptions: JSON对象,流应用恢复运行的参数
- StreamRestoreSplashscreenOptions: 流应用恢复运行时启动界面配置参数
- LaunchWebviewStyles: JSON对象,启动流应用的首页窗口属性
- StreamInfo: JSON对象,流应用信息
- FreetrafficOptions: JSON对象,免流量操作参数
回调方法:
- StreamSuccessCallback: 流应用操作成功的回调函数
- FreetrafficSuccessCallback: 免流量操作成功回调函数
- StreamErrorCallback: 流应用启动失败的回调函数
模块:
5+功能模块(permissions)
{
// ...
"permissions":{
// ...
"Stream": {
"description": "流应用"
}
}
}
open
启动流应用
void plus.stream.open(options, successCallback, errorCallback);
说明:
打开指定的流应用,在流应用中通过plus.runtime.launcher获取的值为"stream"。
参数:
- options:
(
StreamOptions
)
必选 启动流应用的参数
- successCallback:
(
StreamSuccessCallback
)
可选 启动流应用成功回调函数
启动流应用成功后触发调用,无回调参数。 - errorCallback:
(
StreamErrorCallback
)
可选 启动流应用失败回调函数
启动流应用失败后触发调用,并返回错误信息。
返回值:
void : 无平台支持:
- Android - 2.2+ (支持)
- iOS - 4.3+ (支持)
示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>Stream Example</title>
<script type="text/javascript">
function plusReady(){
// 扩展API加载完毕,现在可以正常调用扩展API
}
if(w.plus){
plusReady();
}else{
document.addEventListener('plusready',plusReady,false);
}
// 启动流应用
function openStream(){
var id='HelloH5';//Hello H5+流应用
plus.stream.open({appid:id},function(){
console.log('open stream success: '+id);
},function(e){
console.log('open stream failed: '+id+' - '+JSON.stringify(e));
});
}
</script>
</head>
<body>
<button onclick="openStream()">启动流应用</button>
</body>
</html>
activate
流应用激活统计
void plus.stream.activate();
说明:
提交统计数据到流应用服务器,表明业务系统激活成功。
参数:
无
返回值:
void : 无list
已下载流应用列表
void plus.stream.list(options, successCallback, errorCallback);
说明:
获取当前设备上已安装的所有流应用。
参数:
- options:
(
ListOptions
)
必选 获取流应用列表的参数
保留扩展使用。 - successCallback:
(
Object
)
可选 获取流应用列表成功回调函数
可通过回调参数的event.streams属性获取应用列表数据,类型为StreamInfo数组。 - errorCallback:
(
Object
)
可选 获取流应用列表失败回调函数
获取流应用列表失败后触发调用,并返回错误信息。
返回值:
void : 无平台支持:
- Android - 2.2+ (支持)
- iOS - 4.3+ (支持)
示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>Stream Example</title>
<script type="text/javascript">
function plusReady(){
// 扩展API加载完毕,现在可以正常调用扩展API
}
if(w.plus){
plusReady();
}else{
document.addEventListener('plusready',plusReady,false);
}
// 获取流应用列表
function listStream(){
plus.stream.list({},function(e){
console.log('stream list: '+JSON.stringify(e));
},function(e){
console.log('stream list failed: '+JSON.stringify(e));
});
}
</script>
</head>
<body>
<button onclick="listStream()">获取流应用列表</button>
</body>
</html>
preload
预加载流应用
void plus.stream.preload(appid);
说明:
预加载指定的流应用资源,下载应用资源等,并不运行流应用。 如果应用资源已经下载,则不做任何操作。
参数:
- appid:
(
String
)
必选 流应用的标识
返回值:
void : 无示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>Stream Example</title>
<script type="text/javascript">
function plusReady(){
// 扩展API加载完毕,现在可以正常调用扩展API
}
if(w.plus){
plusReady();
}else{
document.addEventListener('plusready',plusReady,false);
}
// 预加载流应用
function preloadStream(){
var id='HelloH5';//Hello H5+流应用
plus.stream.preload(id);
}
</script>
</head>
<body>
<button onclick="preloadStream()">预加载流应用</button>
</body>
</html>
remove
删除流应用
void plus.stream.remove(appid);
说明:
删除已下载的流应用,清空应用相关运行期保存的资源(如缓存、配置文件等)。
参数:
- appid:
(
String
)
必选 要删除的流应用标识
如果要删除的流应用未下载,则不执行任何操作。
返回值:
void : 无平台支持:
- Android - 2.2+ (支持)
- iOS - 4.3+ (支持)
示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>Stream Example</title>
<script type="text/javascript">
function plusReady(){
// 扩展API加载完毕,现在可以正常调用扩展API
}
if(w.plus){
plusReady();
}else{
document.addEventListener('plusready',plusReady,false);
}
// 删除流应用
function removeStream(){
var id = 'HelloH5';
plus.stream.remove(id);
}
</script>
</head>
<body>
<button onclick="removeStream()">删除流应用</button>
</body>
</html>
setRestoreState
设置流应用恢复运行的参数
void plus.stream.setRestoreState(options);
说明:
当流应用运行数目超过限制(通常最多运行2个流应用),会自动关闭之前切换到后台运行的应用。 可通过此方法设置应用被自动关闭后再次被唤醒恢复运行时的参数,流应用恢复运行流程与第一次启动一致(差别是会使用StreamRestoreOptions中配置的参数)。 如果没有调用setRestoreState方法,则恢复运行时使用启动时(调用plus.stream.open方法)传入的参数。 注意:如果通过plus.stream.open方法启动应用,则忽略此方法设置的参数。
参数:
- options:
(
StreamRestoreOptions
)
必选 恢复流应用的参数
返回值:
void : 无平台支持:
- Android - 2.2+ (支持)
- iOS - 4.3+ (支持)
示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>Stream Example</title>
<script type="text/javascript">
function plusReady(){
// 扩展API加载完毕,现在可以正常调用扩展API
}
if(w.plus){
plusReady();
}else{
document.addEventListener('plusready',plusReady,false);
}
// 监听应用切换到后台事件
document.addEventListener("background", function(){
// 设置应用被自动关闭后恢复的参数
plus.stream.setRestoreState({
extras:"plus.runtime.arguments中可获取的扩展参数",
styles:{
blockNetworkImage:true
}
});
}, false);
</script>
</head>
<body>
设置流应用恢复运行的参数
</body>
</html>
freetrafficRequest
请求免流量验证码
void plus.stream.freetrafficRequest(options, successCallback, errorCallback);
参数:
- options:
(
FreetrafficOptions
)
必选 请求免流量验证码参数
必须输入phone(电话号码)参数,请求的验证码通过短信形式下发。 - successCallback:
(
FreetrafficSuccessCallback
)
必选 请求验证码成功回调函数
仅表示发送请求免流量验证码操作成功,并不保证指定的电话号码已接收到验证码。 - errorCallback:
(
StreamErrorCallback
)
必选 请求验证码失败回调函数
返回值:
void : 无平台支持:
- Android - ALL (不支持)
- iOS - ALL (不支持)
- 360生活助手 (支持)
freetrafficBind
免流量绑定手机号
void plus.stream.freetrafficBind(options, successCallback, errorCallback);
参数:
- options:
(
FreetrafficOptions
)
必选 免流量绑定参数
必须输入phone(电话号码)、验证码参数。 - successCallback:
(
FreetrafficSuccessCallback
)
必选 免流量绑定成功回调函数
- errorCallback:
(
StreamErrorCallback
)
必选 免流量绑定失败回调函数
返回值:
void : 无平台支持:
- Android - ALL (不支持)
- iOS - ALL (不支持)
- 360生活助手 (支持)
freetrafficRelease
解除免流量绑定
void plus.stream.freetrafficRelease();
说明:
解除当前设备绑定的手机号,如果设备未绑定则不执行操作。
参数:
无
返回值:
void : 无平台支持:
- Android - ALL (不支持)
- iOS - ALL (不支持)
- 360生活助手 (支持)
freetrafficInfo
获取免流量状态信息
void plus.stream.freetrafficInfo(successCallback, errorCallback);
参数:
- successCallback:
(
FreetrafficInfoSuccessCallback
)
必选 获取免流量状态信息成功回调函数
回调函数参数为json对象,其属性包含各状态信息。 - errorCallback:
(
StreamErrorCallback
)
必选 获取免流量状态信息失败回调函数
返回值:
void : 无平台支持:
- Android - ALL (不支持)
- iOS - ALL (不支持)
- 360生活助手 (支持)
freetrafficIsValid
免流量是否生效
Boolean plus.stream.freetrafficIsValid();
参数:
无
返回值:
Boolean : false表示免流量不生效,true表示免流量生效。平台支持:
- Android - ALL (不支持)
- iOS - ALL (不支持)
- 360生活助手 (支持)
onfreetrafficStateChange
免流量状态变化事件
plus.stream.onfreetrafficStateChange = function(event){
// succss code.
var state = event.state; // 免流量状态值,根据360规范返回
}
说明:
freetrafficStateChange 类型
StreamOptions
JSON对象,启动流应用参数
interface plus.stream.StreamOptions {
attribute String appmode;
attribute String appid;
attribute String directPage;
attribute String extras;
attribute String icon;
attribute String launcher;
attribute String splash;
attribute LaunchWebviewStyles styles;
attribute String title;
}
说明:
指定要启动的流应用标识、名称、图标、参数等信息。
属性:
- appmode: (String
类型
)流应用运行模式
可取值:"test"表示测试版模式运行,其它值则为正式版本模式。
- appid: (String
类型
)流应用标识
流应用唯一字符串标识。
- directPage: (String
类型
)启动流应用的直达页面链接地址
可在应用中通过plus.runtime.processDirectPage()方法获取。
- extras: (JSON
类型
)流应用运行参数
启动流应用的扩展参数,可在流应用中通过plus.runtime.arguments获取。
- icon: (String
类型
)流应用图标
流应用显示的图标路径(仅支持本地路径),在启动提示界面中显示。
- launcher: (String
类型
)流应用启动类型
流应用的启动类型,可在流应用中通过plus.runtime.launcher获取,默认值为“stream”。
- splash: (String
类型
)应用启动界面样式
可取值: "auto":自动选择启动界面,如果splash图片已经下载则显示splash图片,否则使用默认加载流应用界面; "default":使用默认加载流应用界面(如在360浏览器环境中在标题栏下显示加载进度条)。 默认值为"auto"。
- styles: (LaunchWebviewStyles
类型
)流应用首页窗口对象样式
如果流应用已经运行,从后台激活到前台时忽略此属性。
- title: (String
类型
)流应用名称
流应用显示的标题,在启动提示界面中显示。
StreamRestoreOptions
JSON对象,流应用恢复运行的参数
interface plus.stream.StreamRestoreOptions {
attribute String extras;
attribute String splash;
attribute StreamRestoreSplashscreenOptions splashscreen;
attribute LaunchWebviewStyles styles;
}
说明:
设置流应用恢复运行时的参数、splash、首页等信息。
属性:
- extras: (JSON
类型
)流应用运行参数
启动流应用的扩展参数,可在流应用中通过plus.runtime.arguments获取。
- splash: (String
类型
)应用启动界面样式
可取值: "auto":自动选择启动界面,如果流应用自动关闭时截图成功则使用截图,如果splash图片已经下载则显示splash图片,否则使用默认加载流应用界面; "default":使用默认加载流应用界面(如在360浏览器环境中在标题栏下显示加载进度条)。 默认值为"auto"。
- styles: (LaunchWebviewStyles
类型
)流应用首页窗口对象样式
- splashscreen: (StreamRestoreSplashscreenOptions
类型
)流应用恢复运行时启动界面配置参数
用于流应用自动关闭后恢复运行时调整启动界面配置参数,如将自动关闭splash调整为手动关闭,以便恢复上次运行状态后再进入应用。
StreamRestoreSplashscreenOptions
流应用恢复运行时启动界面配置参数
interface plus.stream.StreamRestoreSplashscreenOptions {
attribute Boolean autoclose;
attribute Number timeout;
}
说明:
设置流应用恢复运行时启动界面,如是否自动关闭、延时关闭时间、超时时间等。
属性:
- autoclose: (Boolean
类型
)是否自动关闭启动界面
true表示应用启动后自动关闭启动界面,false表示应用启动后不自动关闭启动界面,需要在应用调用plus.navigator.closeSplashscreen()方法关闭。
- timeout: (Number
类型
)启动界面超时时间
单位为毫秒(ms),当启动界面超过此时间仍然未关闭时(不管autoclose值设置true还是false),应用将自动关闭启动界面。 默认值为6000(即6秒)。
LaunchWebviewStyles
JSON对象,启动流应用的首页窗口属性
属性:
- blockNetworkImage: (Boolean
类型
)流应用首页是否阻塞网络图片的加载
true表示阻塞网络图片的加载,false表示不阻塞网络图片的加载。默认值为false。 设置后可通过Webview窗口对象的setBlockNetworkImage(false)方法修改设置来继续加载网络图片。
- launch_path: (String
类型
)指定流应用首页地址
可使用网络地址(http://或https://开头),也可使用本地地址(相对应用资源路径)。 也可使用特定地址: about:blank - 使用空白首页,仅加载内置注入的脚本(如all.js、wap2app.js、config.js等)。
- id: (String
类型
)指定首页Webview的id
如果未指定id,则使用应用的appid作为首页Webview的id。
- visible: (Boolean
类型
)流应用首页是否显示
true表示显示,false表示不显示。默认值为true。 注意:流应用首页隐藏后,需要调用首页的setVisible方法显示,如plus.webview.getLaunchWebview().setVisible(true)。
示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>Stream Example</title>
<script type="text/javascript">
function plusReady(){
// 扩展API加载完毕,现在可以正常调用扩展API
}
if(w.plus){
plusReady();
}else{
document.addEventListener('plusready',plusReady,false);
}
// 启动流应用
function openStream(){
var id='HelloH5';//Hello H5+流应用
plus.stream.open({appid:id,styles:{blockNetworkImage:true,visible:false}},function(){
console.log('open stream success: '+id);
},function(e){
console.log('open stream failed: '+id+' - '+JSON.stringify(e));
});
}
</script>
</head>
<body>
<button onclick="openStream()">启动流应用</button>
</body>
</html>
StreamInfo
JSON对象,流应用信息
interface plus.stream.StreamInfo {
attribute String id;
attribute String icon;
attribute Boolean complete;
}
说明:
流应用标识、图标、是否下载完成等信息。
属性:
- id: (String
类型
)流应用标识
流应用唯一字符串标识。
- icon: (String
类型
)流应用的图标
流应用下载的图标路径(本地路径),如果未下载完成则返回空。
- complete: (Boolean
类型
)流应用是否下载完成
true表示流应用下载完成,false表示流应用未下载完成。 注意,流应用未下载完成以让可以正常启动运行,启动后会自动下载。
FreetrafficOptions
JSON对象,免流量操作参数
interface plus.stream.FreetrafficOptions {
attribute String phone;
attribute String code;
}
说明:
包含电话号码、验证码等信息。
属性:
- phone: (String
类型
)电话号码
免流量请求验证码、绑定设备使用的电话号码。
- code: (String
类型
)验证码
免流量绑定设备使用的验证码。
StreamSuccessCallback
流应用操作成功的回调函数
void onSuccess( event ) {
// succss code.
}
参数:
- event:
(
JSON
)
可选 流应用操作结果数据
由操作API定义其包含的属性值。
返回值:
void : 无示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>Stream Example</title>
<script type="text/javascript">
function plusReady(){
// 扩展API加载完毕,现在可以正常调用扩展API
}
if(w.plus){
plusReady();
}else{
document.addEventListener('plusready',plusReady,false);
}
// 启动流应用
function openStream(){
var id='HelloH5';//Hello H5+流应用
plus.stream.open({appid:id},function(){
console.log('open stream success: '+id);
},function(e){
console.log('open stream failed: '+id+' - '+JSON.stringify(e));
});
}
</script>
</head>
<body>
<button onclick="openStream()">启动流应用</button>
</body>
</html>
FreetrafficSuccessCallback
免流量操作成功回调函数
void onSuccess() {
// succss code.
}
参数:
无
返回值:
void : 无StreamErrorCallback
流应用启动失败的回调函数
function void onError( Exception error ) {
// Handle error
var code = error.code; // 错误编码
var message = error.message; // 错误描述信息
}
参数:
- error:
(
Exception
)
必选 流应用操作的错误信息
可通过error.code(Number类型)获取错误编码; 可通过error.message(String类型)获取错误描述信息。
返回值:
void : 无示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>Stream Example</title>
<script type="text/javascript">
function plusReady(){
// 扩展API加载完毕,现在可以正常调用扩展API
}
if(w.plus){
plusReady();
}else{
document.addEventListener('plusready',plusReady,false);
}
// 启动流应用
function openStream(){
var id='HelloH5';//Hello H5+流应用
plus.stream.open({appid:id},function(){
console.log('open stream success: '+id);
},function(e){
console.log('open stream failed: '+id+' - '+JSON.stringify(e));
});
}
</script>
</head>
<body>
<button onclick="openStream()">启动流应用</button>
</body>
</html>