title: WebClip完成IOS的Wap封裝
tags: WebClip,IOS
author : Clown95
背景
當(dāng)我們使用PC頻繁訪問(wèn)某一個(gè)網(wǎng)站的時(shí)候,大部分人的做法是創(chuàng)建一個(gè)書(shū)簽或者直接創(chuàng)建一個(gè)快捷方式。但是我們?cè)谑褂靡苿?dòng)設(shè)備的時(shí)候,好像并沒(méi)有創(chuàng)建桌面快捷方式這么一個(gè)功能,是不是只能使用書(shū)簽來(lái)訪問(wèn)呢?
又或者我們想要把我們的wap站點(diǎn)封裝成IOS應(yīng)用,直接使用IOS原生封裝開(kāi)發(fā)成本上升,使用第三方應(yīng)用封裝,基本上通過(guò)不了AppStore的審核,只能使用企業(yè)簽名才能讓用戶使用APP,這無(wú)疑使成本又增加,而且第三方提供的企業(yè)簽名經(jīng)常不穩(wěn)定,導(dǎo)致軟件無(wú)法使用造成用戶流失。
IOS為我們提供了WebClip的一個(gè)描述文件,它可以把我們的網(wǎng)站創(chuàng)建成桌面快捷方式,并且可以自定義圖標(biāo),幫我們省去打開(kāi)瀏覽器的步驟,當(dāng)然值得注意的是它只能調(diào)用Safari打開(kāi)網(wǎng)頁(yè)。
Tip: 現(xiàn)在簽名市場(chǎng)上說(shuō)的永不掉簽封裝,用的就是這個(gè)方法。
步驟
生成WebClip
前提條件是你有一個(gè)Mac或者你有一個(gè)Mac系統(tǒng),然后通過(guò)Appstore下載Apple Configurator 2,這個(gè)是蘋(píng)果官方提供的描述文件創(chuàng)建工具。
- 首先我們創(chuàng)建一個(gè)新的描述文件

- 我們先選擇
通用選項(xiàng),來(lái)設(shè)置描述文件的一些基本信息
名稱(chēng)為:描述文件設(shè)置名字,這個(gè)名字并不是快捷方式顯示的名字
標(biāo)識(shí)符:我們直接使用默認(rèn)就行,這個(gè)相當(dāng)于軟件的身份證
組織:描述文件創(chuàng)建者,或者網(wǎng)址擁有者
描述:安裝描述文件時(shí)候顯示的介紹信息

- 我們鼠標(biāo)滾到最下面,找到
WebClip選項(xiàng),這邊才是我們的重頭戲
標(biāo)簽: 這個(gè)才是桌面顯示的名稱(chēng)
URL:這個(gè)填寫(xiě)我們需要?jiǎng)?chuàng)建快捷方式網(wǎng)站的地址
可移除:選中它,我們就可以像刪除應(yīng)用一樣在桌面刪除它
圖標(biāo):在桌面上顯示的圖標(biāo)
全屏幕:網(wǎng)站是否全屏顯示,如果不勾選將會(huì)出現(xiàn)狀態(tài)欄,我們最好還是勾選下

- 設(shè)置完成我們保存描述文件,把它放到網(wǎng)站上,使他能夠訪問(wèn)下載,值得注意的是,我們只能通過(guò)Safari瀏覽器來(lái)訪問(wèn)它,否則安裝不了。
解決WebClip自動(dòng)跳轉(zhuǎn)Safari問(wèn)題
如果你開(kāi)始使用剛剛制作的描述文件,你是不是發(fā)現(xiàn)了一個(gè)很?chē)?yán)重的問(wèn)題?當(dāng)網(wǎng)站跳轉(zhuǎn)的時(shí)候,會(huì)自動(dòng)打開(kāi)Safari跳轉(zhuǎn)網(wǎng)站,并且會(huì)丟失之前的動(dòng)作,比如說(shuō)登錄狀態(tài),用戶體驗(yàn)極差。
現(xiàn)在我們就來(lái)解決這個(gè)問(wèn)題:
將下面代碼復(fù)制到每個(gè)網(wǎng)頁(yè)的<head >標(biāo)簽中,請(qǐng)務(wù)必確保所有網(wǎng)頁(yè)均寫(xiě)有此代碼。
<script>if(("standalone" in window.navigator) && window.navigator.standalone){
var noddy, remotes = false;
document.addEventListener('click', function(event) {
noddy = event.target;
while(noddy.nodeName !== "A" && noddy.nodeName !== "HTML") {
noddy = noddy.parentNode;
}
if('href' in noddy && noddy.href.indexOf('http') !== -1 && (noddy.href.indexOf(document.location.host) !== -1 || remotes)){
event.preventDefault();
document.location.href = noddy.href;
}
},false);
}</script>
Tip :使用此代碼簽請(qǐng)自行測(cè)試網(wǎng)站功能的完好性。
Q:代碼有什么作用?
A :此段代碼主要是阻止網(wǎng)頁(yè)喚起Iphone手機(jī)Safari瀏覽器
Q:添加代碼后描述文件需要重新生成嗎?
A :不需要生成
Q :代碼會(huì)對(duì)網(wǎng)站安全產(chǎn)生影響嗎?
A :不影響,代碼只是單純的阻止喚起瀏覽器。