最近為App做活動專區,其中很多活動都是采用html 5頁面來制作的。一方面體量較小,制作快速,更新維護容易;另一方面,嵌入App后適配效果也不會很差。
這里我們采用混編形式來從native app傳參給web頁面,我們采用的思路與主流的js與oc/java互調不同,主要通過Url傳遞參數。簡單的說,就是通過Url拼串,將必要的參數傳遞給web頁面,這樣就免去了登錄的流程,如下:
?
?
那么接下來討論的就是如何使得html頁面獲取Url參數,最簡單的辦法就是直接通過JS來獲取,這里我采用jquery,這里根據找到的信息,列出了以下兩種種寫法:
?
方法一,正則表達式匹配
?
$.getUrlParam = function (name) {var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");var r = window.location.search.substr(1).match(reg);if (r != null) return unescape(r[2]); return null;}
?
調用方法
?
var logo = $.getUrlParam("logo");
?
?
方法二,split參數
?
$.getQueryParameters = function () {var url = window.location.search;var parameters = new Object();if (url.indexOf("?") != -1) {var query = url.substr(1);var ary = query.split("&");for (var i = 0; i < ary.length; i++) {var keyValuePair = ary[i].split("=");parameters[keyValuePair[0]] = unescape(keyValuePair[1]);}}return parameters;}
?
調用方法
?
var querys = $.getQueryParameters(); var name = querys["name"];
?
其中要注意的是,iOS需要手動將Url參數轉成unicode編碼,不然會一直訪問頁面失敗。?
?