一. APP需要處理事項(xiàng)
- 設(shè)置WebView的UserAgent
Android以及iOS需要在WebView里重新設(shè)置UserAgent,H5需要根據(jù)UserAgent來判斷目前客戶端是哪種WebView。APP里UserAgent的設(shè)置格式為:"默認(rèn)UserAgent" + ";" + "特定WebView標(biāo)識"。
WebView類型 UserAgent 備注
Android HMAndroidWebView
iOS UIWebView HMiOSUIWebView 表示是UIWebView
iOS WKWebView HMiOSWKWebView 表示是WKWebView
范例:
Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Mobile Safari/537.36;HMAndroidWebView
前面部分是系統(tǒng)默認(rèn)設(shè)置的UserAgent,在后面拼上";HMAndroidWebView"即可,注意用";"進(jìn)行分割開來。 - WebView從不可見到可見事件通知
如果打開某個(gè)WebView,再從WebView界面跳轉(zhuǎn)到其他界面,然后再返回到WebView界面,原生APP必須觸發(fā)一個(gè)js方法調(diào)用,通知H5該事件的發(fā)生,H5可以考慮是否需要刷新數(shù)據(jù)等。事件通知方法定義為:
function onResume() {
//H5根據(jù)情況考慮是否實(shí)現(xiàn)此方法
}
二. js與原生交互方法定義 - 判斷用戶是否登錄
方法名:checkLogin
參數(shù):無
返回值:boolean true為已登錄,false為未登錄 - 獲取APP端請求頭信息
方法名:getHeaders
參數(shù):無
返回值:json格式的字符串
字段名稱 類型 備注
deviceId string 設(shè)備唯一id
rptTime string
operKind string CUSTOMER
osType string 系統(tǒng)類型,Android或者iOS
osVer string 手機(jī)操作系統(tǒng)版本號
appChannel string 當(dāng)前app的渠道名
deviceType string 設(shè)備型號
appVer string 當(dāng)前app的版本號
rptGpsX string 經(jīng)緯度
rptGpsY string 經(jīng)緯度
3.獲取用戶信息
方法名:getUserInfo
參數(shù):無
返回值:json格式的字符串
字段名稱 類型 備注
userId string 用戶id
token string 登錄后的token
showId string 用戶顯示id
nickName string 昵稱
avatarUrl string 頭像
mobile string 手機(jī)號
type int 用戶類型:CSub(1), CPlus(2), BSub(3), BPlus(4), ASub(5), APlus(6)
sex int 性別:0-女,1-男,3-未知
name string 姓名
mailAddr string 郵箱地址
idCardNum string 身份證號
location string 城市
mainIncome int 主收入:None(1, "無"), Wages(2, "工資"), Business(3, "生意"), Investment(4, "投資"), Parents(5, "父母資助"), Else(6, "其他")
secondIncome int 次收入 - 關(guān)閉當(dāng)前WebView
方法名:closeWebView
參數(shù):無
返回值:無 - 撥打電話
方法名:callPhone
參數(shù):
字段名稱 類型 備注
phone string 電話號碼
返回值:無 - 采用原生存儲(chǔ)key-value鍵值對
方法名:setStorage
參數(shù):
字段名稱 類型 備注
key string 注意相同的key值會(huì)被覆蓋掉
value string 要存儲(chǔ)的字符串內(nèi)容,任意格式
返回值:無 - 獲取原生存儲(chǔ)的字符串值
方法名:getStorage
參數(shù):
字段名稱 類型 備注
key string
返回值:string,獲取通過setStorage方法存儲(chǔ)的字符串 - 通過外部瀏覽器打開url鏈接
方法名:openUrlThroughBrowser
參數(shù):
字段名稱 類型 備注
url string 網(wǎng)頁地址
返回值:無 - 通過一個(gè)新的WebView打開url鏈接
方法名:openUrlThroughWebView
參數(shù):
字段名稱 類型 備注
url string 網(wǎng)頁地址
返回值:無 - 通過路由來進(jìn)行原生頁面跳轉(zhuǎn)
方法名:navigateByRouter
參數(shù):
字段名稱 類型 備注
routerUrl string 路由地址
返回值:無 - 拍照或者從相冊選擇圖片
方法名:selectPicture
參數(shù):
字段名稱 類型 備注
selectType string camera-打開相機(jī),album-打開相冊,cameraAndAlbum-彈出選擇打開相機(jī)和相冊的對話框
width int 圖片進(jìn)行裁切的寬度,如果不需要裁切則傳0
height int 圖片進(jìn)行裁切的高度,如果不需要裁切則傳0
callbackName string 圖片獲取成功之后的回調(diào)方法名,APP端需要把圖片路徑當(dāng)做參數(shù)傳遞過去:callback(path)
返回值:無 - 設(shè)置導(dǎo)航欄右邊按鈕及功能
方法名:setNavigationBarRightMenu
參數(shù):
字段名稱 類型 備注
btnText string 按鈕顯示名稱
functionName string 點(diǎn)擊按鈕后,APP調(diào)用H5的方法名稱
params string 傳遞的參數(shù)
返回值:無 - 保存圖片到本地
方法名:savePicture
參數(shù):
字段名稱 類型 備注
imgUrl string 圖片地址url
返回值:無 - 圖片分享
方法名:shareImage
參數(shù):
字段名稱 類型 備注
imgUrl string 要分享的圖片地址url
channels string 分享的渠道:save-保存圖片,weixin-微信,wxcircle-朋友圈,weibo-微博,qq-QQ,sms-短信,按順序多個(gè)渠道用逗號","分隔,例如:save,weixin,qq,則彈出的分享面板依次為“保存、微信、QQ”
返回值:無 - 鏈接分享
方法名:shareLink
參數(shù):
字段名稱 類型 備注
title string 標(biāo)題
desc string 描述
url string 鏈接地址
channels string 同圖片分享一樣
返回值:無 - 純文本分享
方法名:shareText
參數(shù):
字段名稱 類型 備注
text string 要分享的文本內(nèi)容
channels string 同圖片分享一樣
返回值:無 - 掉起APP端用戶登錄窗口
方法名:toUserLoginPage
參數(shù):無
返回值:無 - 用戶退出登錄
方法名:userLogout
參數(shù):無
返回值:無 - 設(shè)置導(dǎo)航欄標(biāo)題
方法名:setWebViewTitle
參數(shù):
字段名稱 類型 備注
title string 標(biāo)題
返回值:無 - 查看網(wǎng)頁圖片進(jìn)行縮放
方法名:viewLargeImage
參數(shù):
字段名稱 類型 備注
images string 網(wǎng)頁里的圖片url地址,多個(gè)用","分開
index int 要顯示數(shù)組里的圖片索引值
返回值:無 - toast
方法名:toast
參數(shù):
字段名稱 類型 備注
msg string
返回值:無 - 顯示alert彈窗
方法名:showAlertDialog
參數(shù):
字段名稱 類型 備注
params json json格式的字符串,用于配置彈窗內(nèi)容
以下為params參數(shù)范例,彈窗會(huì)根據(jù)buttons的配置按順序依次顯示按鈕:
{
"title": "標(biāo)題",
"msg": "彈窗內(nèi)容",
"buttons": [{
"name": "取消",
"callback": "callbackFunc1"
},
{
"name": "確定",
"callback": "callbackFunc2"
}
]
}
返回值:無 - 選擇城市
方法名:selectCity
參數(shù):
字段名稱 類型 備注
callback string js回調(diào)函數(shù)名,原生APP獲取到城市之后,通過該函數(shù)傳遞給js
返回值:
- 回到首頁
方法名:toHomePage
參數(shù):無
返回值:無