![](/img/trans.png)
[英]Intent-filter Browsable for and android Application, not Activity?
[英]Find URL of sender of intent in a Browsable activity
我在我的一個活動意圖過濾器中處理特定的 URL 方案。 我的用戶可以將他們的 URL 放在互聯網上的任何網頁中,其他在瀏覽器中瀏覽它們的用戶可以點擊它們,我的應用程序開始工作。 這工作完美。
現在我的問題是我想在我的活動中找出該用戶來自的 URL。
例如,一個用戶將他的鏈接放在一個名為A.com
的網站上,另一個正在瀏覽A.com
用戶點擊這個鏈接,所以它來到了我的應用程序。 如何在我的活動的意圖中獲取A.com
地址? 是否可以?
有關更多信息的場景:
例如,我在一個我的活動意圖過濾數據中處理這種鏈接: hisapp://host/path 一個用戶把它放在網絡中,例如一個網站:example.com,另一個用戶點擊它並來到我的應用程序。 我想從意圖中獲取 example.com。
我想從瀏覽器獲取用戶從它到我的應用程序的 URL
我對此的解釋是:
https://hamidreza.com/somepage
: https://hamidreza.com/somepage
)hamidreza://something
)<activity>
和<intent-filter>
的應用程序,用於宣傳對該自定義方案的支持https://hamidreza.com/somepage
歡迎您檢查傳遞給您的活動的Intent
的額外內容(通過getIntent()
),並查看引用 URL 是否在某處。 也許對於一些瀏覽器來說,確實如此。 我希望對於大多數瀏覽器來說,事實並非如此。 對於那些,您無法知道包含啟動您的活動的 URL 的 URL。
正如 Selvin 在評論中指出的那樣,歡迎您在自定義 URL 中嵌入此類信息(例如, hamidreza://something?referer=https://hamidreza.com/somepage
)。 然后,您可以從傳遞給您的活動的Uri
上的查詢參數中獲取該信息。
調用getReferrer()
返回包含啟動 Intent 的包名稱的引用 URI。 不能保證推薦人永遠是已知的!
2019 年 11 月不同引薦應用提供的 URL 值示例:
developer.android.com 的重要警告:
如果在處理 onNewIntent(Intent) 時調用,getReferrer() 將返回將新意圖提交給活動的引用者。 否則,它總是返回原始 Intent 的引用者。
有關更多信息,請參閱https://developer.android.com/reference/android/app/Activity.html#getReferrer()
現在我的問題是,我想在我的活動中找出此用戶來自的URL。
網址將作為數據傳遞給您的活動。 使用getQueryParameter
可以從Uri獲取參數,也可以從細分中獲取參數。
在onCreate中
if (getIntent().getData() != null) {
Uri uri = getIntent().getData();// this is the url
List<String> segments = uri.getPathSegments();// this is the url segments
}
在onNewIntent
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
if (intent.getData() != null) {
Uri uri = intent.getData();
List<String> segments = uri.getPathSegments();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.