[英]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.