“浙里辦“項目單點登錄、埋點控漠、二次回退的問題

已經(jīng)有一段時間沒有更新博客了蔓倍,因為最近變成了某個項目的負責人,就突然忙了起來盐捷。
剛接到這個項目的開始偶翅,我還覺得自己一定能很出色的完成這個任務。剛過了幾天我就發(fā)現(xiàn)事情并不是我想象的那么簡單碉渡,我要做的事情比我想象的要多好幾倍聚谁。對于一個沒有經(jīng)驗的負責人來說,這無疑是一個坑滞诺,當然也是一個挑戰(zhàn)形导。這個項目的難點并不在于它的代碼有多難,也不在于業(yè)務邏輯有多復雜习霹,而是他的規(guī)范太多朵耕,審核太嚴格。
這是一個什么樣的項目呢淋叶?

大家可以看一看語雀《“浙里辦”h5微應用接入流程》這篇文檔阎曹。

接下來我將針對大多數(shù)人以及我個人遇到的一些問題做本篇文章的核心講解:

1.單點登錄,首先分為個人用戶的單點登錄和法人用戶的單點登錄:
個人單點登錄分為app登錄和支付寶小程序登錄:
首先我們要判斷當前環(huán)境是app環(huán)境還是支付寶小程序環(huán)境煞檩,然后跳轉到不同的路徑处嫌,個人用戶登錄我們采用的是直接跳轉到前端頁面,登錄成功后會攜帶ticket等參數(shù)跳轉到我們提供的路徑形娇,

 const sUserAgent = window.navigator.userAgent.toLowerCase();
      const bIsDtDreamApp = sUserAgent.indexOf("dtdreamweb") > -1; // 浙里辦APP
      const bIsAlipayMini =
        sUserAgent.indexOf("miniprogram") > -1 &&
        sUserAgent.indexOf("alipay") > -1;
      if (bIsAlipayMini) {
        window.location.href =
          "https://puser.zjzwfw.gov.cn/sso/alipay.do?action=ssoLogin&scope=1&servicecode="接入碼"&go=https://mapi.zjzwfw.gov.cn/web/***/index.html?debug=true";
      } else {
        window.location.href =
          "https://puser.zjzwfw.gov.cn/sso/mobile.do?action=oauth&scope=1&servicecode="接入碼"&go=https://mapi.zjzwfw.gov.cn/web/***/index.html?debug=true";
      }

法人的單點登錄(app和小程序是一樣的):
由于法人登錄跳轉到頁面時锰霜,用的是post請求訪問,但是web頁面只能通過get訪問桐早,所以法人登錄我們采用的方法是將提供的跳轉路徑為后臺服務地址癣缅,后臺服務將登錄成功后通過get方式重定向到前端頁面并攜帶前端需要的參數(shù),

window.location.;

2.二次回退的問題:
我發(fā)現(xiàn)大多數(shù)人都遇到了二次回退的問題哄酝,有很多人解決了二次回退的問題后又出現(xiàn)了其它各種奇奇怪怪的問題友存,以下是我們解決這個問題的辦法:
window.performance.navigation.type包含三個值:
0 : TYPE_NAVIGATE (用戶通過常規(guī)導航方式訪問頁面,比如點一個鏈接陶衅,或者一般的get方式)
1 : TYPE_RELOAD (用戶通過刷新屡立,包括JS調用刷新接口等方式訪問頁面)
2 : TYPE_BACK_FORWARD (用戶通過后退按鈕訪問本頁面)
首先還是判斷是浙里辦app還是支付寶小程序,根據(jù)不同的環(huán)境處理二次回退

 const sUserAgent = window.navigator.userAgent.toLowerCase();
    const bIsDtDreamApp = sUserAgent.indexOf("dtdreamweb") > -1; // 浙里辦APP
    const bIsAlipayMini =
      sUserAgent.indexOf("miniprogram") > -1 &&
      sUserAgent.indexOf("alipay") > -1;
    if (bIsDtDreamApp) {
      that.watchApp();
    } else if (bIsAlipayMini) {
      that.watchApply();
    }

解決app的二次回退問題,這個地方的邏輯是監(jiān)聽頁面的跳轉,判斷當前頁面是通過刷新或直接訪問進入搀军,還是通過返回進入膨俐。從而來判斷是否是直接跳回app

   watchApp() {
      var that = this;
      window.addEventListener(
        "pageshow",
        function (event) {
          if (
            event.persisted ||
            (window.performance && window.performance.navigation.type == 2)
          ) {
            ZWJSBridge.close()//這個是浙里辦內部的api勇皇,調用close()接口關閉通過openLink打開的頁面
              .then((result) => {
                console.log(result);
              })
              .catch((error) => {
                console.log(error);
              });
          }
          that.isLoad();
        },
        false
      );
    },

解決支付寶小程序的二次回退問題,這個地方的邏輯是監(jiān)聽頁面的跳轉,判斷當前頁面是通過刷新或直接訪問進入焚刺,還是通過返回進入敛摘。從而來判斷是否是直接跳回浙里辦小程序頁面。

 watchApply() {
      var that = this;
      window.addEventListener(
        "pageshow",
        function (event) {
          if (
            event.persisted ||
            (window.performance &&
              (window.performance.navigation.type == 1 ||
                window.performance.navigation.type == 0))
          ) {
            that.isLoad();
          } else if (
            event.persisted ||
            (window.performance && window.performance.navigation.type == 2)
          ) {
            my.navigateBack();
          } else {
            my.navigateBack();//支付寶小程序的api乳愉,需在index.html引入兄淫,通過此api直接跳回浙里辦小程序頁面
          }
        },
        false
      );
    },  

3.埋點,由于有些埋點是通過JSBridge API 獲取的蔓姚,而JSBridge API 的方法都是異步的捕虽,所以可能會存在埋點不成功的問題。:
埋點主要是采集應用app的信息,日志坡脐,用戶信息和地理位置等信息
web 端通用采集 SDK:https://d.alicdn.com/alilog/mlog/aplus.js?id=202951085
使用vue開發(fā)的泄私,這一段要寫在埋點頁面的script里面,盡量不要放在vue實例中挨措,也不要放在index.html中挖滤,否則可能會存在埋點不成功的問題

  <script> (function(w, d, s, q, i) { w[q] = w[q] || [];
 var f = d.getElementsByTagName(s)[0],j = d.createElement(s);
 j.async = true;
 j.id = 'beacon-aplus';
 j.src = 'https://d.alicdn.com/alilog/mlog/aplus.js?id=202951085'; 
f.parentNode.insertBefore(j, f); })(window, document, 'script', 'aplus_queue'); 

aplus_queue.push({ action: 'aplus.setMetaInfo', arguments: ['aplus-rhost-v', 'alog.zjzwfw.gov.cn'] }); 
aplus_queue.push({ action: 'aplus.setMetaInfo', arguments: ['aplus-rhost-g', 'alog.zjzwfw.gov.cn'] }); 

aplus_queue.push({ action: 'aplus.setMetaInfo',
arguments: ['appId', '60506758'] }); </script>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末崩溪,一起剝皮案震驚了整個濱河市浅役,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌伶唯,老刑警劉巖觉既,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異乳幸,居然都是意外死亡瞪讼,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門粹断,熙熙樓的掌柜王于貴愁眉苦臉地迎上來符欠,“玉大人,你說我怎么就攤上這事瓶埋∠J粒” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵养筒,是天一觀的道長曾撤。 經(jīng)常有香客問我,道長晕粪,這世上最難降的妖魔是什么挤悉? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮巫湘,結果婚禮上装悲,老公的妹妹穿的比我還像新娘昏鹃。我一直安慰自己,他們只是感情好诀诊,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布盆顾。 她就那樣靜靜地躺著,像睡著了一般畏梆。 火紅的嫁衣襯著肌膚如雪您宪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天奠涌,我揣著相機與錄音宪巨,去河邊找鬼。 笑死溜畅,一個胖子當著我的面吹牛捏卓,可吹牛的內容都是我干的。 我是一名探鬼主播慈格,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼怠晴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了浴捆?” 一聲冷哼從身側響起蒜田,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎选泻,沒想到半個月后冲粤,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡页眯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年梯捕,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片窝撵。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡傀顾,死狀恐怖,靈堂內的尸體忽然破棺而出碌奉,到底是詐尸還是另有隱情短曾,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布道批,位于F島的核電站错英,受9級特大地震影響,放射性物質發(fā)生泄漏隆豹。R本人自食惡果不足惜椭岩,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧判哥,春花似錦献雅、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至锌仅,卻和暖如春章钾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背热芹。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工贱傀, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人伊脓。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓府寒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親报腔。 傳聞我的和親對象是個殘疾皇子株搔,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內容