解決vue在ios或android中用webview打開H5鏈接時#號後面的參數被忽略問題angular同樣適用

来源:http://www.cnblogs.com/kbnet/archive/2017/12/15/8043078.html
-Advertisement-
Play Games

在ios或android如果直接用webview在打開H5鏈接例如: 打開:http://localhost:8080/#/answer?id=1509335039582001 會變成 http://localhost:8080/ 造成根本打開不了想要的頁面(微信中獲取網頁授權的時候有#號也會有問題 ...


 

在ios或android如果直接用webview在打開H5鏈接例如:

打開:http://localhost:8080/#/answer?id=1509335039582001

會變成 http://localhost:8080/ 造成根本打開不了想要的頁面(微信中獲取網頁授權的時候有#號也會有問題)

解決思路,鏈接中不寫#號 打開後跳轉到帶#號的路由,把頁面路由的代碼定義為listType參數 後面的參數都先整個拼接

如這樣 http://localhost:8080/?listType=answer&id=1509335039582001

我們在index中獲取下頁面接受到的參數:

var globalCons = {};
try{ location.search.substr(1).split('&').forEach( function(item){ var s = item.split('='); globalCons[s[0]]=s[1]; }); } catch(e){ throw new Error(JSON.stringify(search)); }

這樣頁面的參數都會保存在globalCons 對象中

console.log(globalCons) // globalCons = {"listType":"answer","id":1509335039582001 }

在main.JS 判斷listType是否有值

if (globalCons.listType) {
   
      var code ={}; //路由的參數
      code.id = globalCons.id;

      var r = {}    //路由的name
      r.name = globalCons.listType;
      r.params = code;
      $router.push(r);  //解析跳轉到對應頁面

}

這樣問題就解決了,

但是還有一個新的問題

路由的params需要手動去寫,這樣很不爽,我們可以定義一個固定格式傳參時直接寫好,讓js自動追加參數

我們傳參的時候統一傳  params 這個參數 參數值為一個有規律的字元串

如:http://localhost:8080/?listType=answer&params=id.1509335039582001|type.60

params為我們想要追加的值
我們可以先拿到拆分的鍵和值 params.split("|") // ['id.1509335039582001','type.60']

在迴圈數組按.拆分,就拿到最終結果
//跳轉到指定頁面的方法
var code ={};
if (globalCons.listType) {
if(globalCons.params){
var params = globalCons.params.split("|");

params.forEach(function(data){ code[data.split(".")[0]] = parseInt(data.split(".")[1]); }); } var r = {} r.name = globalCons.listType; r.params = code; $router.push(r); }
http://localhost:8080/#/answer?id=1509335039582001&type=60


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 作為第一篇技術乾貨,來寫哪個方面的內容,我著實考慮了很久。 經過了整整30秒的深思熟慮,我決定就我第一次發現新大陸一樣的內容,來進行一次討論。 1 <div id='ancestor'> 2 <div id="father"> 3 <div id="son"> 4 </div> 5 </div> 6 ...
  • [1]定義 [2]咖啡與茶 [3]創建子類 [4]抽象類 [5]鉤子方法 ...
  • 對於習慣微軟VS的用戶,可能很不習慣開源社區興起的前端開發流程。隨著NodeJs的興起,JavaScript已經成為Github上開源項目最多的語言。使用微軟提供的VSCode可以很好地利用這些開源項目。下麵,我們演示一下如何用VSCode編譯Ace Editor。 ...
  • 由於本例單入口時打包的文件體積過大,將其分成多入口。 主要涉及到的幾個文件為: /index.html, /webpack.dll.config.js, /build/webpack.base.conf.js, /build/webpack.dev.conf.js, /build/webpack.p ...
  • 1、數據方法分類: (1)原數組改變 push pop unshift shift reverse sort splice (2)原數組未變,生成新數組 slice concat filter 對於使原數組變化的方法,可以直接更新視圖。 對於原數組未變的方法,可以使用新數組替換原來的數組,以使視圖發 ...
  • 如果直接在綁定的函數中傳入this,則不能正確獲取,且不能獲取到相關的inputfile對象 ...
  • Lazy Load也叫惰性載入,延遲載入,顧名思義,就是在圖片未到達可視區域時,不載入圖片,我們常常在很多的優秀網站上看到類似的例子,例如迅雷、土豆、優酷等,由於一個網頁的圖片非常多,一次性載入增加伺服器壓力,而且用戶未必會拉到底部,浪費用戶流量,Lazy Load採用按需載入,更快的載入速度從而達 ...
  • 【學習實踐用】 後臺:nodejs 前臺:vue2 式樣:uiKit 圖表:echarts 存儲:json文件 打包:webpack 功能:調查問卷的添加,修改,投票以及結果查看 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...