1. 程式人生 > >瀏覽器URL Scheme開啟APP的那些坑

瀏覽器URL Scheme開啟APP的那些坑

URL Scheme開啟APP網上有很多的具體實現,這裡不重複了,只說說實際開發中遇到的坑。

1.應用A配置了scheme,應用B是可以通過url scheme直接開啟應用A裡配置了scheme的特定頁面;

2.如果是瀏覽器用url scheme開啟app就不行,瀏覽器呼叫的時候會直接開啟應用A的啟動頁面,而不是指定頁面,並且會把Uri傳給啟動頁(即使把scheme配置在其他頁面也沒用,只會開啟啟動頁)

3.所以瀏覽器開啟指定頁面的邏輯就是,Uri傳給啟動頁面之後,啟動頁用全域性變數儲存這個Uri,可以存在Application裡,當啟動頁再次開啟主頁的時候,主頁根據Uri的值去做跳轉

4.主頁要設定啟動模式為singleTask並且重寫onNewIntent方法,因為可能有一種情況是,應用A本來就已經打開了,這時候瀏覽器呼叫Url scheme開啟應用A的啟動頁,啟動頁再次開啟主頁,為了保證主頁的唯一性,所以設定啟動模式為singleTask,在這個前提下,主頁不會走onCreate而是onNewIntent

5.另外要補充的一點是,uri的path是帶"/"的,所以判斷path的時候,請用contains而不是equals

第一二點是非常重要的,瀏覽器和app通過url scheme開啟另一個app的實現結果是不一樣的,而網上很多部落格沒有做說明