簡體   English   中英

Android URL模式打開應用程序

[英]Android url schema to open the application

我想在用戶輸入網址時打開應用程序。 我看到了一個應用程序。 例如,如果有人在瀏覽器中輸入此URL,則會打開一個對話框,要求用戶打開應用程序或瀏覽器。

這是我的代碼,但是不起作用:

清單:

<activity
        android:name="ir.mywebsite.goblin.FistActiivty"
        android:label="@string/app_name" >
        <intent-filter>
            <data android:scheme="http" android:host="mywebsite.ir"/>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
        </intent-filter>
    </activity>

這是我在瀏覽器中輸入的網址,但沒有任何反應。

http://mywebsite.ir/p-120

120是我想在我的應用程序中獲取並顯示數據的ID,但是首先需要在打開URL時打開我的應用程序。

我該怎么辦?

謝謝

我的建議是使用類似mywebsite:// p / 120的url方案

為了處理該方案,您應該在清單中描述的主要活動中添加一個意圖過濾器,例如:

 <!-- Activities in your Manifest -->
    <activity android:name=".activities.YourMainActivity">

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>

        <!-- url scheme -->
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE"/>
            <data android:scheme="mywebsite" />
        </intent-filter>
    </activity>

然后,您可以在活動中獲取該url,就像任何intent參數一樣。 這是一個示例,您可以在您的活動的onStart()方法中添加它:

 if (getIntent().getExtras() != null) {
                        Uri data = getIntent().getData();
                        if (data != null) {
                            String scheme = data.getScheme(); // "mywebsite://"
                            if (!TextUtils.isEmpty(scheme) && scheme.equals("mywebsite")) {
                                String type = data.getHost(); // p
                                List<String> params = data.getPathSegments();
                                if (!params.isEmpty()) {
                                    String id = params.get(0); // "120"
                                   // DO YOUR STUFF WITH IT
                            }
                        }
}

希望它能派上用場!

干杯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM