摘要:今天只記錄小的簡單的東西,因?yàn)橐X了。具體使用請以自身需求為準(zhǔn)。那么組裝的時候,可以指定包名,然后指定名,然后增加傳遞的數(shù)據(jù)和。這樣就很好的把一個跳轉(zhuǎn)到某個應(yīng)用某個頁面的的行為用指定出來。方便應(yīng)用和應(yīng)用之間相互跳轉(zhuǎn)。
今天只記錄小的簡單的東西,因?yàn)橐X了。
如果你想做一個Hybrid應(yīng)用,也許有多種方式,也許使用PhoneGap,也許只使用WebView,也許在Native的某個頁面嵌入一部分的WebView。
具體使用請以自身需求為準(zhǔn)。那么今天說說最最輕量的一個方案:我們有這么個需求,有的頁面需要使用 Native,有的頁面需要使用WebView,同時,Native改變可能比較小,WebView的內(nèi)容改動是很多的,因?yàn)閃ebView中呈現(xiàn)的內(nèi)容在服務(wù)器端,因此它的好處就是不需要升級軟件而直接為用戶提供新功能。
那么基于這么一種業(yè)務(wù)需求,我們想到的其中一個辦法就是使用自定義的Schema,使用一個統(tǒng)一的Schema管理器管理,對于不同的Schema我們利用Intent的一些特性,跳到我們所需要的Activity里,呈現(xiàn)我們所需要的內(nèi)容即可。
那么我們這里用到了一個很小的組件類就是java.net.URI 這個組件,想必看見這個類必然會想到j(luò)ava.net.URL類吧。URI全稱是Uniform Resource Identifier(通用資源標(biāo)識符),URL這個類是Uniform Resource Locator(統(tǒng)一資源定位符)(摘自百度百科)。很多人可能混淆兩個概念,其實(shí)只要只要URL是URI的子集即可,也就是說,相對來講,URI的定義會更廣泛抽象一些。
引用一個我們自定義Schema的一個URI例子
lwy://cn.com.zjseek.lwy/news?id=2&path=3
這里Schema,Location,Path,Query等都俱全了,那么有什么用呢?
Location可以指定一個包名,我們用java.net.URI對象的構(gòu)造函數(shù)生成后,用getHost方法能獲取到它的“主機(jī)”
URI uri = new URI("lwy://cn.com.zjseek.lwy/news?id=2&path=3"); System.out.println(uri.getScheme()); // lwy System.out.println(uri.getHost()); // cn.com.zjseek.lwy System.out.println(uri.getPath()); // /news System.out.println(uri.getQuery()); // id=2&path=3
運(yùn)行這段代碼能得到每一部分的結(jié)果。
那么組裝Intent的時候,可以指定包名(Host),然后指定Action名(path),然后增加傳遞的數(shù)據(jù)和Fragment(Query)。
這樣就很好的把一個跳轉(zhuǎn)到某個應(yīng)用某個頁面的的行為用URI指定出來。方便應(yīng)用和應(yīng)用之間相互跳轉(zhuǎn)。
Intent intent = new Intent(); intent.setPackage(uri.getHost()); intent.setAction(uri.getPath()); ...
這樣的URI也非常適合在WebView中用標(biāo)簽進(jìn)行跳轉(zhuǎn),最終方便了我們進(jìn)行HybridApp的開發(fā)。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/85311.html
摘要:若用實(shí)現(xiàn),則體驗(yàn)上會相差不少。至此,因?yàn)楸疚闹械闹攸c(diǎn),的實(shí)現(xiàn)方案及與交互方案。中的實(shí)現(xiàn)方式原理與中原生協(xié)議類似,通過攔截形式實(shí)現(xiàn)。可以通過自定義協(xié)議名稱,然后中攔截這個,并解析其中參數(shù)與回調(diào)函數(shù),調(diào)用方法,并實(shí)現(xiàn)回調(diào)。 android hybird 與h5 app區(qū)別 hybird 與h5 app是不一樣的,以前對這兩者理解有所誤解,在實(shí)際開發(fā)中也并未真正采用hybird,而是使用h5...
摘要:近期公司需要針對分享流程進(jìn)行優(yōu)化,其中一點(diǎn)就是前端檢測是否安裝應(yīng)用,來進(jìn)行不同的判斷下載或直接跳轉(zhuǎn)到中。為回調(diào)函數(shù),根據(jù)返回來判斷是否安裝。 近期公司需要針對分享流程進(jìn)行優(yōu)化,其中一點(diǎn)就是前端H5檢測是否安裝應(yīng)用,來進(jìn)行不同的判斷(下載或直接跳轉(zhuǎn)到app中)。原理很簡單:創(chuàng)建一個iframe去打開uri。如果打開app成功網(wǎng)頁進(jìn)入后臺,再切換回來時間會超過2.5s。利用時間去檢測。下面...
閱讀 2216·2021-09-07 09:58
閱讀 3391·2019-08-30 14:07
閱讀 1305·2019-08-29 12:32
閱讀 667·2019-08-29 11:06
閱讀 3692·2019-08-26 18:18
閱讀 3731·2019-08-26 17:35
閱讀 1381·2019-08-26 11:35
閱讀 611·2019-08-26 11:35