下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第Html5同時支持多端sdk的小技巧在實際項目中,我們通常會需要做一些跨多平臺的頁面。比如說一個活動頁面,需要在微信小程序里展示,也需要在自家公司的app里面展示,還需要在支付寶等平臺里面展示。這時候一個h5就是很符合你的需要了。如果這個時候需求再復雜一些,比如說在這個活動頁面需要調(diào)些掃碼功能,或者需要調(diào)起支付功能,等原生方法調(diào)用的需求,那么這個時候你需要一個中間件,來處理不同端的原生方法。
中間件實現(xiàn)原理
原理很簡單,我們在抽象出來一個類,在這類里面,我們將需要用到原生的方法進行實現(xiàn),其他終端對這個類進行繼承并重寫所有的方法。
偷懶的話,可以不要pc調(diào)試類,直接在父類實現(xiàn)pc調(diào)試類里的所有方法。
實現(xiàn)完了,接下來就是調(diào)用了,如果在每個頁面都判斷終端是哪端就太麻煩了,并且也沒有必要把每端的中間件代碼都加載進來(可以使用require進行異步加載)。在頁面加載的過程中,根據(jù)判斷創(chuàng)建對應終端的中間件對象addon,并將這個中間件對象掛載到window上面,在使用時候就可以直接使用window.addon.scan()
微信、支付寶都有其對應的判斷方法,但自家app的判斷,需要原生開發(fā)在userAgent里面添加標識(這個不復雜,原生都知道怎么加,不知道的請問度娘)
另外ioswebview不再支持同步方法,建議所有的方法采用異步調(diào)用方式,參考示例。
下面上一段我的判斷各端的代碼
classAddon{
constructor(){
letua=window.navigator.userAgent.toLowerCase()
if(/MPBank/.test(window.navigator.userAgent)){
//招商行小程序
}elseif(ua.match(/MicroMessenger/i)==micromessenger){
//大部分手機可采用此判斷,是否是小程序,但有小部分華為等手機因為加載慢,這里會出現(xiàn)誤判
if(window.__wxjs_environment===miniprogram||ua.match(/miniprogram/i)==miniprogram){
}else{
}elseif(/AlipayClient/.test(window.navigator.userAgent)){
//此處用ua和miniprogram判斷,先查看兼容性,使用my.getEnv為異步,不適合此處
if(ua.match(/miniprogram/i)==miniprogram||ua.match(/webview/i)==webview){
//支付寶小程序
}else{
//支付寶
}elseif(/xxxx-app/.test(window.navigator.userAgent)){
//app
}else{
//其他處理(web和第三方渠道進入)兜底
exportletaddon=newAddon()
下面是一個簡單的方法示例
ParentAddon.js
exportdefaultclassParentAddon{
scan(data){
data.success(xxx)
IosAppAddon.js
exportdefaultclassIosAppAddonextendsParentAddon{
scan(data){
window.scanCallback=data.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年醫(yī)療機構(gòu)信息化建設(shè)與網(wǎng)絡(luò)安全手冊
- 物流運輸過程監(jiān)控與優(yōu)化指南(標準版)
- 2025年人力資源管理績效考核與激勵手冊
- 消防安全檢查與處置手冊
- 國防培訓班管理制度
- 鄉(xiāng)村國語培訓制度
- 2026年IT企業(yè)技術(shù)面試題目
- 鋼化廠安全教育培訓制度
- 幼兒園教職員工培訓制度
- 后愛培訓制度
- 車輛日常安全檢查課件
- 成立合資公司合同范本
- 比亞迪索賠培訓課件
- 民航安全法律法規(guī)課件
- 2026屆四川省瀘州高級中學高一生物第一學期期末經(jīng)典試題含解析
- 山東省濟寧市2026屆第一學期高三質(zhì)量檢測期末考試濟寧一模英語(含答案)
- 2026標準版離婚協(xié)議書-無子女無共同財產(chǎn)債務版
- 光伏電站巡檢培訓課件
- 【期末必刷選擇題100題】(新教材)統(tǒng)編版八年級道德與法治上學期專項練習選擇題100題(含答案與解析)
- 年末節(jié)前安全教育培訓
- GB/T 93-2025緊固件彈簧墊圈標準型
評論
0/150
提交評論