同一手機中的不同APP交互是APP功能中一個常用的功能。除了自動喚醒等等隱蔽交互之外,用戶主動的APP交互也是非常頻繁的,主要包括共享、第三方登錄、第三方交互等等。這些功能都是不可或缺的,其原理是使用URL Scheme來進行功能實現(xiàn)。
1.什么是URL Scheme?
URL Scheme就是一個可以讓app相互之間可以跳轉(zhuǎn)的協(xié)議。每個app的URL Scheme都是不一樣的,如果存在一樣的URL Scheme,那么系統(tǒng)就會響應先安裝那個app的URL Scheme,因為后安裝的app的URL Scheme被覆蓋掉了,是不能被調(diào)用的。
2.應用之間跳轉(zhuǎn)原理
一個應用能打開另一個應用的必然條件是,另一個應用必須配置一個scheme(協(xié)議),這樣應用程序才能根據(jù)協(xié)議找到需要打開的應用。APP應用在系統(tǒng)中通過注冊Scheme的方式注冊自己,常見的Scheme就是 http:,聲明了這個Scheme的應用就是聲稱自己支持http協(xié)議,能夠打開網(wǎng)頁了。還有一些常見的Scheme比如 file:(傳輸文本), tel:(通話)等。
當然,APP應用不僅可以聲明這些標準的Scheme,也能聲明自己獨有的Scheme,比如微信的就是 weixin:, QQ 的是 mqq: ,如果多個應用都聲明相同的Scheme呢?比如應用a、b、c都聲明自己能發(fā)短信,這時系統(tǒng)會有一定的策略來保證公平性,比如在Android系統(tǒng)中,就會彈出支持的應用列表,讓用戶選擇, iOS則替用戶選擇近打開過的支持應用。
3.應用之間傳遞數(shù)據(jù)
了解了應用之間調(diào)用的方法,那么后面數(shù)據(jù)傳遞就簡單了,只需要在Scheme后面攜帶上需要傳遞的信息作為參數(shù)就可以了。比如,發(fā)起調(diào)用的是應用A,被調(diào)用的是應用B。yingyongB://action=sendmessage,message=”xxx”,后面的數(shù)據(jù)會帶到應用B中,但是應用B接到了信息不知道該信息是哪個應用發(fā)的,回信息給哪個應用。如何進行回調(diào)呢?發(fā)起調(diào)用的應用A在Scheme后面加一個參數(shù)backScheme=yingyongA: ,這樣應用B就知道了需要返回信息給應用A,應用A和B這種自定義協(xié)議也可以叫做偽協(xié)議,只要雙方應用能識別處理就可以。
同樣,我們也可以實現(xiàn)跳轉(zhuǎn)到指定頁面的功能。想要跳轉(zhuǎn)到指定界面,必定是上一個app告訴下一個app(被跳轉(zhuǎn)的app)需要跳轉(zhuǎn)到哪個界面,而如何告訴它這里便涉及到兩個app的通信。兩個app之間的跳轉(zhuǎn)只需要配置一個Scheme,通過協(xié)議即可實現(xiàn)。
APP跳轉(zhuǎn)的交互原理并不復雜,只要通過一套簡單的協(xié)議即可實現(xiàn)。因此在設計的時候不用太多考慮這部分功能的成本,可以盡可能的多采用調(diào)取方式,因為這類功能能夠方便用戶,也是增強用戶體驗的一部分。
我們擁有國內(nèi)頂級的設計、技術團隊和多年互聯(lián)網(wǎng)軟件開發(fā)經(jīng)驗。