移動綜管2.0交互規(guī)范
date: 2020-02-18 16:27:52
tags:
[TOC]
Js和原生交互規(guī)范
forward 跳轉(頁面跳轉h5或原生)
字段名 | 說明 | 值 | 是否必填 | 備注 |
---|---|---|---|---|
type | 跳轉類型:原生或者h5 | Native/H5 | Y | |
animate | 跳轉形式 | push/pop/present | N | 跳轉/回退/無層級關系(底部彈出), 默認為push |
toPage | type為H5時為頁面路徑列表 (animate為pop時可為空字符串鸯匹, 默認返回上一級), 為Native時則是與原生約定好的字段 |
Y | animate為push時不可為空 | |
refreshUrl | 向后跳轉時需刷新url | N | animate為pop時候toPage若為空字符串則直接返回; 若toPage非空跳轉到指定界面火惊, refreshUrl非空且為*時以原url刷新頁面, 若為url時加載當前url(重定向) |
|
hasNavigation | 新頁面是否展示導航欄 | true/false | N | 默認為true |
float | 導航欄是否懸浮展示 | true/false | N | 默認為false |
params | 原生跳轉時的傳參,H5外鏈時傳參 | 例:{} | N |
{
"type": "H5",
"toPage": ["www.baidu.com"],
"hasNavigation": "true",
"float":"true"
}
{
"type": "H5",
"toPage": ["www.baidu.com"],
"hasNavigation": "true"
"params": {
"from": "yjt",//來自哪個平臺
"title": "醫(yī)健通"http://模塊名稱或平臺名稱
}
}
{
"type": "H5",
"toPage": ["www.baidu.com"],
"animate": "pop",
"refreshUrl": "www.baidu.com/home",
"hasNavigation": "true"
}
{
"type": "Native",
"toPage": ["mapPage"],
"hasNavigation": "true",
"animate": "push"
"params": {
"longitude": "32.324324234234",
"latitude": "32.234324234234"
}
}
{
"type": "Native",
"toPage": ["BindBluetoothDevice"],
"hasNavigation": "true",
"animate": "push"
"params": {
"deviceType": "BloodPressureMeter" // 設備類型:BloodPressureMeter(血壓儀)、WeighingScale(體重秤)、Glucometer(血糖儀)、Thermometer(體溫計)
}
}
setHeader 設置導航
字段名 | 說明 | 值 | 是否必填 | 備注 |
---|---|---|---|---|
type | 操作類型 | init/update | N | init:初始化titlebar撑蚌,清空原h(huán)eader;update時更新titlebar搏屑。默認為update |
left | 左邊barActionView對象 | N | ||
right | 右邊barActionView對象 | N | ||
titleView | 中間barTitleView對象 | N |
barActionView對象 左右操作欄
字段名 | 說明 | 值 | 是否必填 | 備注 |
---|---|---|---|---|
type | view類型 | back/image/title /collection | N | left為空時默認為back展示 |
title | 按鈕名稱 | 例:完成 | N | 只顯示文字時包含此參數(shù) |
backUrl | 返回鍵時返回的頁面url | N | type為back時配置此參數(shù) | |
imgName | 按鈕圖片名稱 | 例:search | N | 只顯示圖片時包含此參數(shù) |
imgUrl | 按鈕圖片地址 | www.123.jpg | N | 圖片從網(wǎng)絡獲取時包含此參數(shù) |
collectionView | 圖標和文字類型的組合控件,collectionView對象 | {} | N | |
mark | 按鈕圖片角標 | 例:1 | N | |
callBackMethod | 點擊按鈕的回調(diào)方法 | N |
collectionView 組合功能view
字段名 | 說明 | 值 | 是否必填 | 備注 |
---|---|---|---|---|
title | 按鈕名稱 | N | ||
imgUrl | 圖標地址 | N | ||
imgPosition | 圖標在名稱的相對位置 | left/top/right/bottom | N | 默認圖標在名稱的左側 |
barTitleView
字段名 | 說明 | 值 | 是否必填 | 備注 |
---|---|---|---|---|
type | view類型 | title/search/multiTitle | Y | |
title | 標題列表 | 例:個人中心 | N | type為title時配置此參數(shù) |
placeholder | 搜索框占位文字 | 例:請輸入您要搜索的醫(yī)院 | N | type為search時配置此參數(shù) |
searchText | 搜索框預置文字 | 例:中心醫(yī)院 | N | type為search時配置此參數(shù) |
voice | 是否支持語音輸入 | true/false | N | type為search時配置此參數(shù)争涌,默認false,顯示的是清除按鈕 |
callBackMethod | 點擊標題后的回調(diào)方法 | didClickSearchBtn | N | 和searchMethods辣恋,此方法存在即非原生搜索 |
searchMethods | 內(nèi)含搜索相關事件回調(diào)方法名 | editingdidbegin/ editingdidend/ editingchanged/ editingfinished |
N | 方法分別為點擊搜索框獲取焦點/失去焦點時/文本數(shù)據(jù)發(fā)生改變/搜索時的回調(diào)方法亮垫。 |
{
"type": "init",
"left": [{
"type": "back",
"backUrl":"www.baidu.com/home"
}, {
"type": "image",
"imgName":"message",
"imgUrl":"www.123.jpg",
"mark":"2"
},{
"type": "title",
"title":"返回",
"callBackMethod":"didClickFinishBtn"
},{
"type": "collection",
"collection":{
"title": "位置",
"imgUrl":"www.123.jpg",
"imgPosition":"left"
}
}],
"right": [{
"type": "image",
"imgName":"share",
"imgUrl":"www.123.jpg"
}, {
"type": "image",
"imgUrl":"www.123.jpg",
"callBackMethod":"attent"
}],
"titleView": {
"type": "search",
"placeHolder": "請輸入您要搜索的醫(yī)院",
"voice":"true",
"searchMethods": {
"editingdidbegin" : "didbegin",
"editingdidend" : "didend",
"editingchanged" : "changed",
"editingfinished" : "finished"
}
}
}
{
"type": "init",
"left": [{
"type": "back",
"backUrl":"www.baidu.com/home"
}, {
"type": "image",
"imgName":"message",
"imgUrl":"www.123.jpg",
"mark":"2"
},{
"type": "title",
"title":"返回",
"callBackMethod":"didClickFinishBtn"
},{
"type": "collection",
"collection":{
"title": "位置",
"imgUrl":"www.123.jpg",
"imgPosition":"left"
}
}],
"right": [{
"type": "image",
"imgName":"share",
"imgUrl":"www.123.jpg"
}, {
"type": "image",
"imgUrl":"www.123.jpg",
"callBackMethod":"attent"
}],
"titleView": {
"type": "title",
"title": ["首頁","監(jiān)控"]
}
}
nativePermission 原生權限
字段名 | 說明 | 值 | 是否必填 | 備注 |
---|---|---|---|---|
type | 獲取原生權限的類型 | 例:nativeStorage/location/qrCodeScan/camera/photoLibrary /video/contacts/phone/track/getUnReadMsgCount/setTabBadge /pay/deqingEnPuPay/liveness/nativePay/dongyingKeyboard /MeasureResult/version/newMessage/share/voice/clearCache /cacheSize/searchContent/download/login/rotate/authentication /authType/gestureAuth/tabConfig | Y | |
params | 請求參數(shù) | {} | N | |
callBackMethod | 執(zhí)行的回調(diào)方法 | N |
{
"type": "tabConfig", // 底部tab配置
"params": {
"selectedTextColor": "#51da8a",
"unselectedTextColor": "#636363"
"tabList": [
{
"tabName": "首頁",
"selectedUrl": "www.123.jpg",
"unselectedUrl": "www.456.jpg",
"tabPage": "www.baidu.com/new",
"hasNavigation": "true",
"isDialog": "false"
},
{
"tabName": "健康",
"selectedUrl": "www.123.jpg",
"unselectedUrl": "www.456.jpg",
"tabPage": "/html/gzd/measurement.html",
"hasNavigation": "false",
"isDialog": "false"
},
{
"tabName": "個人",
"selectedUrl": "www.123.jpg",
"unselectedUrl": "www.456.jpg",
"tabPage": "*Mine",
"hasNavigation": "true",
"isDialog": "false"
}
]
}
}
{
"type": "authentication", // 調(diào)用原生身份認證(掃臉、指紋伟骨、手勢)
"params": {
"type": "" , //finger/face/gesture
"toggle":"", //true/false 開啟關閉
"action":"" //toggle/gestureReset/login/switchStatus 切換開關/重置手勢/登錄/開關狀態(tài)
},
"callBackMethod": "authResult" //key:result :true/false 認證成功或失敗
}
{
"type":"authType", //獲取原生支持的認證方式
"callBackMethod": "authResult" // key:type ,open ,gestureOpen :finger/face/gesture 指紋/人臉/手勢饮潦;open 是否開啟;手勢是否打開
//key1:type value: finger/face // 支持哪種生物認證
//key2:open value: "true/false" // 生物認證的狀態(tài)(開啟或關閉)
//key3:gestureOpen value: "true/false" // 手勢開啟或關閉
}
{
"type": "rotate", // 旋轉
"params": {
"direction": "" //橫屏、豎屏 : landscape携狭、portrait
}
}
{
"type": "login", // 登錄
"params": {
"result": "" //true继蜡、false 通知原生登錄結果
},
"callBackMethod": "login" //key:username、password
}
{
"type": "download", //文件導出
"params": {
"downloadUrl": ""
}
}
{
"type": "searchContent", //搜索內(nèi)容配置
"params": {
"content": ""
}
}
{
"type": "cacheSize", //獲得本地緩存大小
"callBackMethod": "getCacheSize" //key:cacheSize
}
{
"type": "clearCache",
"callBackMethod": "clearSuccess"
}
{
"type": "voice",
"callBackMethod": "searchContent" //key:word
}
{
"type": "version",
"callBackMethod": "getVersion" //key:currentVersion暑中、lastVersion
}
{
"type": "share", //分享
"params": {
"title": "分享的title",
"content": "http://www.baidu.com"
}
}
{
"type": "newMessage", //消息推送
"params": {
"msgType": "alert", //消息類型根據(jù)業(yè)務后續(xù)再定
}
"callBackMethod": "syncNewMessage" //取時有回調(diào)
}
{
"type": "nativeStorage", //原生存儲
"params": {
"method": "get",//get:取 set:存 delete:刪 init:配置手機本地key值
"key":@"",
"value":@""
}
"callBackMethod": "getValue" //取時有回調(diào)
}
{
"type": "location",
"params": {
"coordinate":1 // 1:高德壹瘟、2、百度鳄逾、3稻轨、騰訊
}
"callBackMethod": "finishLocation"
}
{
"type": "photoLibrary",
"params": {
"maxCount": "5",
"maxBytes": "524288",
"quality": "1"
}
"callBackMethod": "finishSelectPhoto"
}
{
"type": "video",
"params": {
"maxDuration": "5",
"minDuration": "2",//單位秒
}
"callBackMethod": "finishShoot"
}
{
"type": "qrCodeScan",
"params": {
"needResult":"0" // 值0/1 ; o:原生自己處理,1雕凹,直接返回掃描結果
}
"callBackMethod": "getqrCodeScan"
}
{
"type": "phone",
"params": {
"mode": "call", //call 打電話 //send 發(fā)信息
"phoneNumber": "13312341234",
"content": "你好"http://發(fā)短信時的內(nèi)容
}
}
{
"type": "track",
"name": "news",
"content": "110101"
}
{
"type": "getUnReadMsgCount",
"callBackMethod": "unReadMsgCount"
}
{
"type": "setTabBadge",
"params": {
"0": "99",//key為tab下標殴俱,value為顯示的badge
"1": "9" ,
"2": "7"
}
}
{
"type": "pay",
"params": {
"appid": "",
"appSecret": "",
"channelType": "",
"submerno": "",
"goods_desc": "",
"billTotalFee": "",
"billNum": "",
"order_desc": ""
}
}
{
"type": "liveness",
"callBackMethod": "finishLiveness" //回調(diào)方法參數(shù)為{faceImage:base64}
}
{
"type": "nativePay", //直接與原生支付交互(東營)
"params": {
"payment": "uppay",//支付途徑:銀聯(lián)(uppay)、支付寶(alipay)枚抵、微信(wxpay)
"parameters":{
"tn": "tn6465435453465"
}//支付對應的相關參數(shù)线欲,示例為銀聯(lián)支付
}
"callBackMethod": "finishPay"
}
{
"type": "nativePay", //直接與原生支付交互(東營)
"params": {
"payment": "uppay",//支付途徑:銀聯(lián)(uppay)、支付寶(alipay)汽摹、微信(wxpay)
"parameters":{
"tn": "tn6465435453465"
}//支付對應的相關參數(shù)李丰,示例為銀聯(lián)支付
}
"callBackMethod": "finishPay"
}
{
"type": "dongyingUMSPosPay", //東營銀商綜合支付
"params": {
"payment": "uppay",//支付途徑:銀聯(lián)(uppay)、支付寶(alipay)逼泣、微信(wxpay)
"parameters":{
}//支付對應的相關參數(shù)
}
"callBackMethod": "finishPay" //返回code,message.code:0.成功 1.失敗 2.取消
}
{
"type": "dongyingKeyboard", //東營銀行密碼鍵盤
"params": {
"inputKey": "",//調(diào)用callBack時作為key回傳用于區(qū)分輸入項
"username": ""
}
"callBackMethod": "finishEdit" //調(diào)用鍵盤失敗時回調(diào)會有errorCode及errorMsg
}
{
"type": "yunnanICBCPay", //云南工行綜合支付
"params": {
"payment": "icbcpay",//支付途徑:工行(icbcpay)趴泌、支付寶(alipay)、微信(wxpay)
"parameters":{
}//支付對應的相關參數(shù)
}
"callBackMethod": "finishPay" //返回code,message.code:0.成功 1.失敗 2.取消
}
{
"type": "toIpsmap", //南通醫(yī)院室內(nèi)導航
"params": {
"mapId": "PG2ZGYDFd5",//醫(yī)院mapId
"targetName": "",//醫(yī)院名稱(預留字段拉庶,導航時必填)
"targetId": ""http://醫(yī)院ID(預留字段嗜憔,導航時必填)
}
}
{
"type": "bluetoothDevice", // 藍牙設備
"params": {
"deviceType": "BloodPressureMeter" // 設備類型:BloodPressureMeter(血壓儀)、WeighingScale(體重秤)氏仗、Glucometer(血糖儀)吉捶、Thermometer(體溫計)
},
"callBackMethod": "MeasureResult" // 測量結果
}
lifeCycle 生命周期方法
字段名 | 說明 | 值 | 是否必填 | 備注 |
---|---|---|---|---|
type | 生命周期階段類型 | 例:lifeCycle | Y | 頁面即將可見/不可見/銷毀 |
callBackMethod | 各生命周期的回調(diào)方法 | 例:onVisible /onInvisible/onDestory | Y | H5對頁面生命周期的回調(diào) |
{
"type": "onVisible",
"callBackMethod": "onVisible"
}
手機端設計規(guī)范
本地存儲
本地存儲使用SharedPreferences,存儲獲取時對數(shù)據(jù)加解密處理
字段名 | 說明 | 值 |
---|---|---|
session | 登錄憑證 | |
username | 用戶名 | |
password | 密碼 | |
isAutoLogin | 是否自動登錄 | |
isSavePass | 是否保存密碼 | |
serverUrl | 服務端地址 | |
tab | 底部tab相關屬性 | {} |
推送消息
h5頁面若有需要與推送消息關聯(lián)的內(nèi)容時,通過nativePermission 傳值type=newMessage并設置回調(diào)方法呐舔,并注冊到通知類中币励,當有新消息推送過來,調(diào)用注冊列表中的回調(diào)方法進行數(shù)據(jù)同步
message對象 后臺推送消息內(nèi)容
字段名 | 說明 | 值 | 是否必填 | 備注 |
---|---|---|---|---|
title | 標題 | Y | ||
text | 消息內(nèi)容 | Y | ||
msgType | 消息類型 | openH5Page | Y | |
url | h5頁面地址 | N |
extra:
{
"msgType": "openH5Page",
"url": "https://www.baidu.com"
}
全局接口 config
在啟動頁通過全局接口獲得tab各屬性值及登錄接口path滋早,若無網(wǎng)絡APP端固定幾個產(chǎn)品模塊默認展示榄审。
全局接口的作用是tab各值在啟動頁的時候進行初始化,進入首頁可以快速展示杆麸,同時可以兼容非必須登錄的邏輯搁进。
字段名 | 說明 | 值 | 是否必須 | 備注 |
---|---|---|---|---|
type | 原生或H5頁面 | Native/H5 | ||
tabName | tab的名稱 | 首頁 | Y | |
tabPage | tab的Url | www.baidu.com/new | N | type為Native時,以*開頭的字段作為原生頁面的標識昔头。 |
selectedUrl | 選中的圖標url | www.123.jpg | Y | |
unselectedUrl | 未選中的圖標url | www.456.jpg | Y | |
selectedTextColor | 選中文字的顏色 | #51da8a | N | 配置默認顏色 |
unselectedTextColor | 未選中文字的顏色 | #636363 | N | 配置默認顏色 |
hasNavigation | 是否顯示導航欄 | true/false | Y | |
isDialog | 頁面是否以dialog展示 | true/false | N | 默認是頁面 |
{
"selectedTextColor": "#51da8a",
"unselectedTextColor": "#636363"
"tabList": [
{
"tabName": "首頁",
"selectedUrl": "www.123.jpg",
"unselectedUrl": "www.456.jpg",
"tabPage": "www.baidu.com/new",
"hasNavigation": "true",
"isDialog": "false"
},
{
"tabName": "健康",
"selectedUrl": "www.123.jpg",
"unselectedUrl": "www.456.jpg",
"tabPage": "/html/gzd/measurement.html",
"hasNavigation": "false",
"isDialog": "false"
},
{
"tabName": "個人",
"selectedUrl": "www.123.jpg",
"unselectedUrl": "www.456.jpg",
"tabPage": "*Mine",
"hasNavigation": "true",
"isDialog": "false"
}
]
}
對第三方鏈接的處理
由于第三方鏈接不能像自己的web端頁面一樣進行頁面和跳轉的控制饼问,所以針對返回進行了處理,設計兩個返回按鈕揭斧,返回和關閉莱革,返回默認是根據(jù)回退棧一級一級返回,關閉是直接退出當前頁面讹开。
對三方鏈接的判斷時增加域名判斷盅视。