微信頁面關閉事件


微信H5頁面關閉事件

需求:

在微信瀏覽器中,監聽頁面關閉事件,當頁面關閉時,處理一些事件。這是平時工作中比較常遇到的問題。與此同時,還有微信頁面的刷新問題,切后台問題等等。現就目前的需求,對前一段時間遇到的問題以及最終的解決辦法,做一下記錄。

  • 業務需求:
    • 微信瀏覽器頁面關閉,暫停播放,停止記錄時長;
    • 微信瀏覽器頁面切后台時,同上,暫停播放,停止記錄時長;
    • 后台殺死微信瀏覽器時,同上。
  • 此中涉及到的事件主要有:
    1. 微信瀏覽器頁面關閉事件:pagehide / unload 事件
    2. 頁面的后台前台切換事件(即頁面的顯示與隱藏):visibilitychange 事件

微信(APP客戶端)頁面關閉

微信端對Android和iOS的處理方式有所差異,有些事件監聽函數只能在Android和iOS中的一端生效,所以微信頁關閉事件也是如此,不同操作系統平台,所需的事件監聽方法還是有差異的。

  • Android微信關閉
const unloadHander(e) {
      // 獲取瀏覽器信息ua
      let u = navigator.userAgent;
      // 判斷設備
      let isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1;
      if (isAndroid) {
      	// 處理事件
      }
}

// 添加事件
window.addEventListener('unload', function(e) {
      unloadHander();
}, false);

// 移除事件
window.removeEventListener('unload', function(e) {
      unloadHander();
}, false);
  • iOS微信頁面關閉
const pagehideHander(e) {
      // 獲取瀏覽器信息ua
      let u = navigator.userAgent;
      // 判斷設備
      let isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
      if (isiOS) {
      	// 處理事件
      }
}

// 添加事件
window.addEventListener('pagehide', function(e) {
      pagehideHander();
}, false);

// 移除事件
window.removeEventListener('pagehide', function(e) {
      pagehideHander();
}, false);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM