目錄
往返快取問題
IOS端不支援new Date("2019-01-01 00:00:00") 這種格式
微信二維碼
IOS中無法點擊
audio音訊無法播放
IOS行動端click事件300ms的延遲回應
fixed問題
首頁 web前端 H5教程 行動端H5開發遇到的問題及解決方法

行動端H5開發遇到的問題及解決方法

Mar 30, 2019 am 10:43 AM
javascript 微信

這篇文章帶給大家的內容是關於行動端H5開發遇到的問題及解決方法,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

微信分享簽章錯誤invalid signature

vue單頁應用history模式下微信分享一直提示簽章錯誤invalid signature

依照微信官網文檔,已經引入jssdk,正確的配置js安全域名,後台開發人員產生的簽名也透過微信簽名工具驗證,但是前端的自訂分享一直報簽名錯誤,沒有辦法自訂分享,如果確保了哪些基本配置沒有問題,並且簽名也通過了微信簽名工具驗證,那麼可能就是前端訪問的url和後台生成簽名的url不一致導致的簽名錯誤

前端如果是通過ajax將url傳到後端獲取簽名,那麼我們需要將當前頁面除去' #'hash部分的鏈接,並且需要encodeURIComponent

let url = location.href.split('#')[0]
encodeURIComponent(url)
登入後複製

正常來說這樣就可以實現微信自定義分享了,但是單頁應用路由切換了之後IOS端還是提示簽名錯誤,安卓端沒有問題

這是因為history模式下視圖是透過pushState來切換的,但是IOS微信客戶端(安卓客戶端已經修復了)不支援pushState的H5新特性,所以路由變化了但是微信瀏覽器取得到的url沒有變化,右上角複製連結發現,微信記錄的url還是第一次進入時的url,除非你手動刷新,或者使用window.location等頁面跳轉方法刷新,才能獲取到最新的url

解決的辦法是頁面進入的時候記錄url,如果是iOS設備那麼使用這個url獲取微信簽名

router.afterEach(to => {
  sessionStorage.setItem('currentUrl',window.location.href)
})
let url = encodeURIComponent(location.href.split('#')[0])
if(system == "iOS" && sessionStorage.getItem('currentUrl')) {
  url = encodeURIComponent(sessionStorage.getItem('currentUrl').split('#')[0])
}
登入後複製

這個時候拿這個url去獲取微信簽名就是正確的了,該方法只適合IOS設備,只要取得簽署的url和微信記錄的url一致簽章就是正確的

往返快取問題

點擊瀏覽器的前進和回退,有時候不會自動執行js,特別是在safari中,這與往返快取(bfcache)有關係。
解決方法:window.onunload = function(){};

如果是Vue單頁應用,並且使用了keep-alive的話,頁面也不會刷新,這時候一些接口請求等可以放在beforeRouteEnter方法

IOS端不支援new Date("2019-01-01 00:00:00") 這種格式

這種寫法new Date("2019-01 -01 00:00:00")在安卓端是支援的,但是在IOS端不支持,會報NAN錯誤,所以需要把new Date("2019-01-01 00:00:00")改成new Date("2019/01/01 00:00:00")這種形式

let date = '2019-01-01 00:00:00'
date.replace(/\-/g, '/')
登入後複製

微信二維碼

一個頁面可能有多個二維碼,但長按識別二維碼只能辨識最後一個二維碼,這個時候我們需要控制頁面視覺區域內只能出現一個二維碼

IOS中無法點擊

span,p 等預設無法點擊的標籤, IOS中監聽click事件點擊無效
解決方法,加入 cursor: pointer;

audio音訊無法播放

audio.play() 方法在安卓裝置可以正常播放,但是在IOS客戶端不能播放,在設定了audio的src之後,我們需要加上這一行程式碼
audio.load() 去載入音訊

可以透過監聽loadeddata方法看音訊是否可以開始播放了,安卓設定在音訊載入好了之後就開始播放,但是iOS端可能稍微有延遲,這個時候我們可以透過audio.currentTime取得到音訊是否開始播放,這個值大於0就表示已經開始播放了

IOS行動端click事件300ms的延遲回應

fixed問題

在ios8以下系統,當小鍵盤啟動時,都會出現位置浮動問題,解決方法:只需要在中間部分外層p加上css樣式
position:fixed;top:50px; bottom:50px;overflow:scroll;

這篇文章到這裡就已經全部結束了,更多其他精彩內容可以關注PHP中文網的HTML5影片教學欄位!


以上是行動端H5開發遇到的問題及解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

歐易交易所app國內下載教程 歐易交易所app國內下載教程 Mar 21, 2025 pm 05:42 PM

本文提供國內安全下載歐易OKX App的詳細指南。由於國內應用商店限制,建議用戶通過歐易OKX官方網站下載App,或使用官網提供的二維碼掃描下載。下載過程中,務必核實官網地址,檢查應用權限,安裝後進行安全掃描,並啟用雙重驗證。 使用過程中,請遵守當地法律法規,使用安全網絡環境,保護賬戶安全,警惕詐騙,理性投資。 本文僅供參考,不構成投資建議,數字資產交易風險自負。

H5和小程序與APP的區別 H5和小程序與APP的區別 Apr 06, 2025 am 10:42 AM

H5、小程序和APP的主要區別在於:技術架構:H5基於網頁技術,小程序和APP為獨立應用程序。體驗和功能:H5輕便易用,功能受限;小程序輕量級,交互性好;APP功能強大,體驗流暢。兼容性:H5跨平台兼容,小程序和APP受平台限制。開發成本:H5開發成本低,小程序中等,APP最高。適用場景:H5適合信息展示,小程序適合輕量化應用,APP適合複雜功能應用。

公司安全軟件導致應用無法運行?如何排查和解決? 公司安全軟件導致應用無法運行?如何排查和解決? Apr 19, 2025 pm 04:51 PM

公司安全軟件導致部分應用無法正常運行的排查與解決方法許多公司為了保障內部網絡安全,會部署安全軟件。 ...

H5頁面製作和微信小程序有什麼不同 H5頁面製作和微信小程序有什麼不同 Apr 05, 2025 pm 11:51 PM

H5更靈活,可定制性強,但需要嫻熟的技術;小程序上手快,維護便捷,但受限於微信框架。

公司安全軟件與應用衝突怎麼辦? HUES安全軟件導致常用軟件無法打開如何排查? 公司安全軟件與應用衝突怎麼辦? HUES安全軟件導致常用軟件無法打開如何排查? Apr 01, 2025 pm 10:48 PM

公司安全軟件與應用兼容性問題及排查方法許多企業為了保障內網安全,會安裝安全軟件。然而,安全軟件有時...

企業微信中的JS資源緩存問題如何解決? 企業微信中的JS資源緩存問題如何解決? Apr 04, 2025 pm 05:06 PM

企業微信的JS資源緩存問題探討在進行項目功能升級時,常常會遇到部分用戶未能成功升級的情況,尤其是在企�...

H5和小程序如何選擇 H5和小程序如何選擇 Apr 06, 2025 am 10:51 AM

H5和小程序的選擇取決於需求。對於跨平台、快速開發和高擴展性的應用,選擇H5;對於原生體驗、豐富功能和平台依附性的應用,選擇小程序。

幣安虛擬幣怎麼買進賣出詳細教程 幣安虛擬幣怎麼買進賣出詳細教程 Mar 18, 2025 pm 01:36 PM

本文提供2025年更新的幣安虛擬貨幣買賣簡明指南,詳細講解了在幣安平台上進行虛擬貨幣交易的操作步驟。指南涵蓋了法幣購買USDT、幣幣交易購買其他幣種(如BTC)以及賣出操作,包括市價交易和限價交易兩種方式。 此外,指南還特別提示了法幣交易的支付安全和網絡選擇等關鍵風險,幫助用戶安全、高效地進行幣安交易。 通過本文,您可以快速掌握在幣安平台上買賣虛擬貨幣的技巧,降低交易風險。

See all articles