1. 程式人生 > >H5跳轉ReactNative開啟指定頁面

H5跳轉ReactNative開啟指定頁面

2、 URL Scheme協議

URL Scheme是一種頁面內跳轉協議,是一種非常好的實現機制,通過定義自己的scheme協議,可以非常方便跳轉app中的各個頁面;通過scheme協議,伺服器可以定製化告訴App跳轉那個頁面,可以通過通知欄訊息定製化跳轉頁面,可以通過H5頁面跳轉頁面等。

蘋果手機中的APP都有一個沙盒,APP就是一個資訊孤島,相互是不可以進行通訊的。但是iOS的APP可以註冊自己的URL Scheme,URL Scheme是為方便app之間互相呼叫而設計的。

URL Scheme必須能唯一標識一個APP,如果你設定的URL Scheme與別的APP的URL Scheme衝突時,你的APP不一定會被啟動起來。因為當你的APP在安裝的時候,系統裡面已經註冊了你的URL Scheme。 完整的URL Scheme格式:

stars://host:8088/pageDetail?pageId=102

1.stars:表示Scheme協議名稱,可以自定義 2.host: 表示協議的跳轉地址名稱,通常和APP中配置的名稱是一直的 3.pageDetail:表示跳轉的具體頁面名稱 4.pageId:表示傳遞的引數 5.8088:通常表示跳轉地址的埠名稱

3、具體使用配置

Android配置

<activity

         ...

            <!--要想在別的App上能成功調起App,必須新增intent過濾器-->
            <intent-filter>
                <!--協議部分,隨便設定-->
                <data
                    android:host="host"
                    android:path="/pageDetail"
                    android:port="8088"//可以不要
                    android:scheme="stars"/>
                <!--下面這幾行也必須得設定-->
                <!--表示該頁面可以被隱式呼叫,必須加上該項-->
                <category android:name="android.intent.category.DEFAULT"/>
                <action android:name="android.intent.action.VIEW"/>
                <!--如果希望該應用可以通過瀏覽器的連線啟動,則新增該項-->
                <category android:name="android.intent.category.BROWSABLE"/>
            </intent-filter>
        </activity>

IOS配置

只需要配置info.plist 檔案,只需要配置URL Schemes就可以了,identifier是可選配置

4、注意事項

正常情況下,以上配置後,就可以正常進行跳轉了,但是在安卓上,還需要進行一步配置,如果你的應用被其註冊過的外部 url 調起,如果要在現有的 MainActivity 中監聽傳入的 intent,那麼需要在AndroidManifest.xml中將 MainActivity 的launchMode設定為singleTask

<activity
  android:name=".MainActivity"
  android:launchMode="singleTas