一. APP需要處理事項(xiàng)
1. 設(shè)置WebView的UserAgent
Android以及iOS需要在WebView里重新設(shè)置UserAgent篡帕,H5需要根據(jù)UserAgent來(lái)判斷目前客戶(hù)端是哪種WebView物臂。APP里UserAgent的設(shè)置格式為:"默認(rèn)UserAgent" + ";" + "特定WebView標(biāo)識(shí)"几蜻。
WebView類(lèi)型 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)行分割開(kāi)來(lái)浇冰。
2. WebView從不可見(jiàn)到可見(jiàn)事件通知
如果打開(kāi)某個(gè)WebView,再?gòu)腤ebView界面跳轉(zhuǎn)到其他界面粉私,然后再返回到WebView界面,原生APP必須觸發(fā)一個(gè)js方法調(diào)用近零,通知H5該事件的發(fā)生诺核,H5可以考慮是否需要刷新數(shù)據(jù)等朋魔。事件通知方法定義為:
function onResume() {
//H5根據(jù)情況考慮是否實(shí)現(xiàn)此方法
}
二. js與原生交互方法定義
1. 判斷用戶(hù)是否登錄
方法名:checkLogin
參數(shù):無(wú)
返回值:boolean true為已登錄祝钢,false為未登錄
2. 獲取APP端請(qǐng)求頭信息
方法名:getHeaders
參數(shù):無(wú)
返回值:json格式的字符串
字段名稱(chēng) 類(lèi)型 備注
deviceId string 設(shè)備唯一id
rptTime string
operKind string CUSTOMER
osType string 系統(tǒng)類(lèi)型,Android或者iOS
osVer string 手機(jī)操作系統(tǒng)版本號(hào)
appChannel string 當(dāng)前app的渠道名
deviceType string 設(shè)備型號(hào)
appVer string 當(dāng)前app的版本號(hào)
rptGpsX string 經(jīng)緯度
rptGpsY string 經(jīng)緯度
3.獲取用戶(hù)信息
方法名:getUserInfo
參數(shù):無(wú)
返回值:json格式的字符串
字段名稱(chēng) 類(lèi)型 備注
userId string 用戶(hù)id
token string 登錄后的token
showId string 用戶(hù)顯示id
nickName string 昵稱(chēng)
avatarUrl string 頭像
mobile string 手機(jī)號(hào)
type int 用戶(hù)類(lèi)型:CSub(1), CPlus(2), BSub(3), BPlus(4), ASub(5), APlus(6)
sex int 性別:0-女,1-男,3-未知
name string 姓名
mailAddr string 郵箱地址
idCardNum string 身份證號(hào)
location string 城市
mainIncome int 主收入:None(1, "無(wú)"), Wages(2, "工資"), Business(3, "生意"), Investment(4, "投資"), Parents(5, "父母資助"), Else(6, "其他")
secondIncome int 次收入
4. 關(guān)閉當(dāng)前WebView
方法名:closeWebView
參數(shù):無(wú)
返回值:無(wú)
5. 撥打電話
方法名:callPhone
參數(shù):
字段名稱(chēng) 類(lèi)型 備注
phone string 電話號(hào)碼
返回值:無(wú)
6. 采用原生存儲(chǔ)key-value鍵值對(duì)
方法名:setStorage
參數(shù):
字段名稱(chēng) 類(lèi)型 備注
key string 注意相同的key值會(huì)被覆蓋掉
value string 要存儲(chǔ)的字符串內(nèi)容调衰,任意格式
返回值:無(wú)
7. 獲取原生存儲(chǔ)的字符串值
方法名:getStorage
參數(shù):
字段名稱(chēng) 類(lèi)型 備注
key string
返回值:string裙士,獲取通過(guò)setStorage方法存儲(chǔ)的字符串
8. 通過(guò)外部瀏覽器打開(kāi)url鏈接
方法名:openUrlThroughBrowser
參數(shù):
字段名稱(chēng) 類(lèi)型 備注
url string 網(wǎng)頁(yè)地址
返回值:無(wú)
9. 通過(guò)一個(gè)新的WebView打開(kāi)url鏈接
方法名:openUrlThroughWebView
參數(shù):
字段名稱(chēng) 類(lèi)型 備注
url string 網(wǎng)頁(yè)地址
返回值:無(wú)
10. 通過(guò)路由來(lái)進(jìn)行原生頁(yè)面跳轉(zhuǎn)
方法名:navigateByRouter
參數(shù):
字段名稱(chēng) 類(lèi)型 備注
routerUrl string 路由地址
返回值:無(wú)
11. 拍照或者從相冊(cè)選擇圖片
方法名:selectPicture
參數(shù):
字段名稱(chēng) 類(lèi)型 備注
selectType string camera-打開(kāi)相機(jī)入客,album-打開(kāi)相冊(cè),cameraAndAlbum-彈出選擇打開(kāi)相機(jī)和相冊(cè)的對(duì)話框
width int 圖片進(jìn)行裁切的寬度腿椎,如果不需要裁切則傳0
height int 圖片進(jìn)行裁切的高度桌硫,如果不需要裁切則傳0
callbackName string 圖片獲取成功之后的回調(diào)方法名,APP端需要把圖片路徑當(dāng)做參數(shù)傳遞過(guò)去:callback(path)
返回值:無(wú)
12. 設(shè)置導(dǎo)航欄右邊按鈕及功能
方法名:setNavigationBarRightMenu
參數(shù):
字段名稱(chēng) 類(lèi)型 備注
btnText string 按鈕顯示名稱(chēng)
functionName string 點(diǎn)擊按鈕后啃炸,APP調(diào)用H5的方法名稱(chēng)
params string 傳遞的參數(shù)
返回值:無(wú)
13. 保存圖片到本地
方法名:savePicture
參數(shù):
字段名稱(chēng) 類(lèi)型 備注
imgUrl string 圖片地址url
返回值:無(wú)
14. 圖片分享
方法名:shareImage / shareImageV2
參數(shù):type: 不傳是只有分享渠道铆隘,1.代表圖片+分享渠道
字段名稱(chēng) 類(lèi)型 備注
imgUrl string 要分享的圖片地址url
channels string 分享的渠道:save-保存圖片,weixin-微信南用,wxcircle-朋友圈膀钠,weibo-微博,qq-QQ裹虫,sms-短信肿嘲,按順序多個(gè)渠道用逗號(hào)","分隔,例如:save,weixin,qq恒界,則彈出的分享面板依次為“保存睦刃、微信、QQ”
type int 1:表示顯示圖片+分享渠道 shareImageV2方法包含此參數(shù)
shareTitle string 分享彈出框里的標(biāo)題 shareImageV2方法包含此參數(shù)
返回值:無(wú)
15. 鏈接分享
方法名:shareLink / shareLinkV2
參數(shù):
字段名稱(chēng) 類(lèi)型 備注
title string 標(biāo)題
desc string 描述
url string 鏈接地址
channels string 同圖片分享一樣
shareTitle string 分享彈出框里的標(biāo)題 shareLinkV2方法包含此參數(shù)
返回值:無(wú)
16. 純文本分享
方法名:shareText / shareTextV2
參數(shù):
字段名稱(chēng) 類(lèi)型 備注
text string 要分享的文本內(nèi)容
channels string 同圖片分享一樣
shareTitle string 分享彈出框里的標(biāo)題 shareTextV2方法包含此參數(shù)
返回值:無(wú)
17. 掉起APP端用戶(hù)登錄窗口
方法名:toUserLoginPage
參數(shù):無(wú)
返回值:無(wú)
18. 用戶(hù)退出登錄
方法名:userLogout
參數(shù):無(wú)
返回值:無(wú)
19. 設(shè)置導(dǎo)航欄標(biāo)題
方法名:setWebViewTitle
參數(shù):
字段名稱(chēng) 類(lèi)型 備注
title string 標(biāo)題
返回值:無(wú)
20. 查看網(wǎng)頁(yè)圖片進(jìn)行縮放
方法名:viewLargeImage
參數(shù):
字段名稱(chēng) 類(lèi)型 備注
images string 網(wǎng)頁(yè)里的圖片url地址十酣,多個(gè)用","分開(kāi)
index int 要顯示數(shù)組里的圖片索引值
返回值:無(wú)
21. toast
方法名:toast
參數(shù):
字段名稱(chēng) 類(lèi)型 備注
msg string
返回值:無(wú)
22. 顯示alert彈窗
方法名:showAlertDialog
參數(shù):
字段名稱(chēng) 類(lèi)型 備注
params json json格式的字符串涩拙,用于配置彈窗內(nèi)容
以下為params參數(shù)范例,彈窗會(huì)根據(jù)buttons的配置按順序依次顯示按鈕:
{
"title": "標(biāo)題",
"msg": "彈窗內(nèi)容",
"buttons": [{
"name": "取消",
"callback": "callbackFunc1"
},
{
"name": "確定",
"callback": "callbackFunc2"
}
]
}
返回值:無(wú)
23. 選擇城市
方法名:selectCity
參數(shù):
字段名稱(chēng) 類(lèi)型 備注
callback string js回調(diào)函數(shù)名耸采,原生APP獲取到城市之后兴泥,通過(guò)該函數(shù)傳遞給js
返回值:
24. 回到首頁(yè)
方法名:toHomePage
參數(shù):
字段名稱(chēng) 類(lèi)型 備注
index int 0=首頁(yè),1=咨詢(xún)虾宇,2=推薦搓彻,3=個(gè)人中心
返回值:無(wú)
25. 獲取狀態(tài)欄高度
方法名:getStatusBarHeight
參數(shù):無(wú)
返回值:int類(lèi)型,單位為px
26. js調(diào)用原生通知事件
方法名:notifyEvent
參數(shù):
字段名稱(chēng) 類(lèi)型 備注
praram json字符串
{
'eventName': 'confirmTreaty', //事件名稱(chēng)
'result': 1 //通知結(jié)果
}
返回值:無(wú)
27. 圖片分享(base64)
方法名:shareImageByBase64 / shareImageByBase64V2
參數(shù):
字段名稱(chēng) 類(lèi)型 備注
imgBase64Str string 要分享的圖片的base64
channels string 分享的渠道:save-保存圖片嘱朽,weixin-微信旭贬,wxcircle-朋友圈,weibo-微博搪泳,qq-QQ稀轨,sms-短信,按順序多個(gè)渠道用逗號(hào)","分隔岸军,例如:save,weixin,qq奋刽,則彈出的分享面板依次為“保存、微信艰赞、QQ”
shareTitle string shareImageByBase64V2 有此參數(shù)
返回值:無(wú)
28. 分享回調(diào)結(jié)果
方法名:shareResult
參數(shù):
字段名稱(chēng) 類(lèi)型 備注
result bool 分享的結(jié)果佣谐,YES:分享成功 NO:分享失敗,
channel string 分享的渠道:save-保存圖片方妖,weixin-微信狭魂,wxcircle-朋友圈,weibo-微博党觅,qq-QQ雌澄,sms-短信
返回值:無(wú)
29.保存base64圖片
方法名:saveImageWithBase64
參數(shù):
字段名稱(chēng) 類(lèi)型 備注
imgBase64Str string 要保存的圖片的base64
返回值:無(wú)