## 多窗口控制 ##
### 4.1组件消息通信 ###
```
插件说明:不同组件之间进行消息通信
插件名称:TMController
调用方法:sendMessage
入参类型:JSON
```
>入参:
| 参数名|含义 | 规则说明 | 参数类型 |是否必须 |缺省值 |
|:-------------:|:-------------|:-------------|:-------------|:-------------|:-------------|
|action|操作|由开发者自定义,例如:A组件定义为:com.tm.native.createDocument,B组件调用A组件的相应功能时需要传入|String|是|无|
|message|通信数据|由开发者自定义,JSON格式字符串|String|是|无|
>调用实例:
```
function create(){
var title = document.getElementById("title").value;
var content = document.getElementById("content").value;
var messageJson = "{\"title\":\""+title+"\",\"content\":\""+content+"\"}";
TMController.sendMessage("com.tm.native.createDocument",messageJson,onSuccess, onError);
function onSuccess(msg){
alert(msg);
var jsonStr = JSON.parse(msg);
document.getElementById("title").value = jsonStr['title'];
document.getElementById("content").value = jsonStr['content'];
}
function onError(error){
alert(error);
}
}
```
>返回结果:
```
插件调用后,插件本身无返回结果。
A组件调用B组件若需要B组件返回处理结果,则需要B组件处理完成后,调用SDK提供的方法通知到A组件。
```
---
### 4.2滑动控制 ###
```
插件说明:用于页面同时有不同方向滑动操作时,拦截所有滑动事件,防止与框架模板滑动冲突。导致滑动卡顿。
插件名称:TMController
调用方法:interceptTouchEvent
入参类型:JSON
```
>入参:
| 参数名|含义 | 规则说明 | 参数类型 |是否必须 |缺省值 |
|:-------------:|:-------------|:-------------|:-------------|:-------------|:-------------|
|interceptTouch|是否拦截|当为True,表示当前页面需要拦截所有滑动事件,为False时,则不需要释放拦截。开发者切记释放拦截。例如:地图|Boolean|是|无|
>调用实例:
```
function interceptTouch(isIntercept){
TMController.interceptTouchEvent({interceptTouch:isIntercept});
}
```
>返回结果:
```
无返回结果
```
---
### 4.3打开Native新窗口 ###
```
插件说明:A组件需要打开B组件界面 插件名称:TMController
调用方法:openNativeInterface
入参类型:JSON
```
>入参:
| 参数名|含义 | 规则说明 | 参数类型 |是否必须 |缺省值 |
|:-------------:|:-------------|:-------------|:-------------|:-------------|:-------------|
|windowName|界面名称|需要类的全路径,例如:com.tm.native.NewActivity|String|是|无|
|arguments|参数|JSON格式字符串|String|否|无|
>调用实例:
```
function openNativeInterface(){
var windowName = "com.tm.native.NewActivity";
var title = document.getElementById("title").value;
var content = document.getElementById("content").value;
var arguments = "{\"title\":\""+title+"\",\"content\":\""+content+"\"}";
TMController.openNativeInterface({windowName:windowName, arguments:arguments});
}
```
>返回结果:
```
无返回结果
```
---
### 4.4打开Native新窗口加载HTML页面 ###
```
插件说明:组件打开Native新窗口加载HTML页面
插件名称:TMController
调用方法:openHtmlInterface
入参类型:JSON
```
>入参:
| 参数名|含义 | 规则说明 | 参数类型 |是否必须 |缺省值 |
|:-------------:|:-------------|:-------------|:-------------|:-------------|:-------------|
|loadUrl|URL|需要加载的HTML全路径,本地和远端均支持|String|是|无|
|configName|配置文件名称|若HTML是基于框架开发的,则需要此参数,否则传Config|String|是|无|
|arguments|参数|JSON格式字符串|String|否|无|
>调用实例:
```
function openHtmlInterface(){
var loadUrl = "file:///android_asset/pages/comp01/map.html";
var arguments = "{\"title\":\"title\"}";
var configName = "config";
TMController.openHtmlInterface(loadUrl,configName, arguments);
}
```
>返回结果:
```
无返回结果
```
---
### 4.5获取会员信息 ###
```
插件说明:获取登陆后的会员信息
插件名称:TMController
调用方法:getUser
入参类型:无参数
```
>入参:无参数
>调用实例:
```
function getUserInfo(){
TMController.getUser(onSuccess, onError);
function onSuccess(userInfo) {
alert(userInfo);
}
function onError(error) {
alert(error);
}
}
```
>返回结果:
```
以Json格式返回会员信息,例如:
{"member_id":1,"member_nickname":"昵称"}
若返回的数据为空,或者member_id小于等于0,则表明会员未登录
```
---
### 4.6获取基础配置信息 ###
```
插件说明:获取基础配置信息
插件名称:TMController
调用方法:getBaseConfig
入参类型:无参数
```
>入参:无参数
>调用实例:
```
function getBaseConfig(){
TMController.getBaseConfig(onSuccess, onError);
function onSuccess(baseConfig) {
alert(baseConfig);
}
function onError(error) {
alert(error);
}
}
```
>返回结果:
```
以Json格式返回基础配置信息,例如:
{
"domain":"http://review.360tianma.com",
"siteCode":"00000000000000000000000000000000",
"themeColor":"#d81e06",
"titleColor":"#ffffff",
"backgroundType": 0,
"backgroundValue": "#d81e06"
}
domain域名,
themeColor主题色,
titleColor标题颜色,
backgroundType标题栏背景类型(0:16进制色值字符串(如#1479D7),1:图片base64字符串,2:图片网络链接,默认为色值字符串),
backgroundValue标题栏背景颜色值。
```
---
### 4.7跳转到登录界面 ###
```
插件说明:跳转到登录界面
插件名称:TMController
调用方法:openLoginInterface
入参类型:无参数
```
>入参:无参数
>调用实例:
```
function openLoginInterface(){
TMController.openLoginInterface(onSuccess,onError);
function onSuccess() {
alert("onSuccess");
}
function onError(error) {
alert(error);
}
}
```
>返回结果:
```
登录成功回调
失败返回错误信息
```
---
### 4.8跳转到会员中心界面 ###
```
插件说明:跳转到会员中心界面
插件名称:TMController
调用方法:openUCMainInterface
入参类型:无参数
```
>入参:无参数
>调用实例:
```
function openUCMainInterface(){
TMController.openUCMainInterface();
}
```
>返回结果:
```
无返回结果
```
---
### 4.9跳转到绑定手机界面 ###
```
插件说明:跳转到登录界面
插件名称:TMController
调用方法:openBindingMobileInterface
入参类型:无参数
```
>入参:无参数
>调用实例:
```
function openBindingMobileInterface(){
TMController.openBindingMobileInterface(onSuccess,onError);
function onSuccess() {
alert("onSuccess");
}
function onError(error) {
alert(error);
}
}
```
>返回结果:
```
绑定手机成功回调
失败返回错误信息
```
### 4.10分享网页 ###
```
插件说明:分享网页到第三方平台
插件名称:TMController
调用方法:shareUrl
入参类型:String
```
>入参:
| 参数名|含义 | 规则说明 | 参数类型 |是否必须 |缺省值 |
|:-------------:|:-------------|:-------------|:-------------|:-------------|:-------------|
|description|描述|分享内容的描述|String|是|无|
|thumb|缩略图|缩略图的地址|String|是|无|
|title|标题|分享的标题|String|是|无|
|url|链接地址|分享的链接地址|String|是|无|
>调用实例:
```
function shareUrl(){
var des = "描述";
var thumb = "缩略图";
var title = "标题";
var url = "链接";
TMController.shareUrl(onSuccess,onError, des,thumb,title,url);
function onSuccess(platform) {
alert(platform);
}
function onError(error) {
alert(error);
}
}
```
>返回结果:
```
成功返回分享的平台
失败返回错误信息
```
### 4.11分享文本 ###
```
插件说明:分享文本到第三方平台
插件名称:TMController
调用方法:shareText
入参类型:String
```
>入参:
| 参数名|含义 | 规则说明 | 参数类型 |是否必须 |缺省值 |
|:-------------:|:-------------|:-------------|:-------------|:-------------|:-------------|
|description|描述|分享的文本|String|是|无|
>调用实例:
```
function shareText(){
var des = "描述";
TMController.shareText(onSuccess, onError, des);
function onSuccess(platform) {
alert(platform);
}
function onError(error) {
alert(error);
}
}
```
>返回结果:
```
成功返回分享的平台
失败返回错误信息
```
### 4.12弹出支付对话框 ###
```
插件说明:弹出支付方式选择的对话框
插件名称:TMController
调用方法:showPayDialog
入参类型:String
```
>入参:
| 参数名|含义 | 规则说明 | 参数类型 |是否必须 |缺省值 |
|:-------------:|:-------------|:-------------|:-------------|:-------------|:-------------|
|cost|支付的金额|显示支付的金额(如3.5)|String|是|无|
>调用实例:
```
function showPayDialog(){
var cost= "12.5";
TMController.showPayDialog(onSuccess, onError, cost);
function onSuccess(type) {
alert(type);
}
function onError(error) {
alert(error);
}
}
```
>返回结果:
```
成功返回选择的支付类型,请将该数据原样返回给后端签名
失败返回错误信息
```
### 4.13前往支付 ###
```
插件说明:前往支付
插件名称:TMController
调用方法:gotoPay
入参类型:String
```
>入参:
| 参数名|含义 | 规则说明 | 参数类型 |是否必须 |缺省值 |
|:-------------:|:-------------|:-------------|:-------------|:-------------|:-------------|
|type|支付方式|支付选择框中选择的支付方式|String|是|无|
|content|签名|后端签名后的数据|String|是|无|
>调用实例:
```
function gotoPay(type, content){
TMController.gotoPay(onSuccess, onError, type,content);
function onSuccess() {
}
function onError(error) {
alert(error);
}
}
```
>返回结果:
```
成功无返回结果
失败返回错误信息
```