gpt4 book ai didi

Android 如何打开一个基于 Intent 的 Chrome URI

转载 作者:行者123 更新时间:2023-12-04 11:39:38 24 4
gpt4 key购买 nike

来自 Chrome docs ,我知道可以使用以下 URI 打开应用程序

intent:  
HOST/URI-path // Optional host
#Intent;
package=\[string\];
action=\[string\];
category=\[string\];
component=\[string\];
scheme=\[string\];
end;
我想知道是否可以从我的应用程序中打开此 URI。
示例 URI
intent:
//qr/json/%7B%22u%22%3A%22https%3A%2F%2Fprivacybydesign.foundation%2Fbackend%2Firma%2Fsession%2FvsRjkZF2B2H17sBWmVZe%22%2C%22irmaqr%22%3A%22disclosing%22%7D
#Intent;
package=org.irmacard.cardemu;
scheme=cardemu;
l.timestamp=1620907855707;
S.browser_fallback_url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dorg.irmacard.cardemu
;end
因为它看起来像一个普通的 URI,我想我可以这样打开它:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("%EXAMPLE_URI%"));
startActivity(intent);
这给了我一个 ActivityNotFoundException .我错过了什么?

Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=intent://qr/json/{"u":"https://privacybydesign.foundation/backend/irma/session/vsRjkZF2B2H17sBWmVZe","irmaqr":"disclosing"} pkg=org.irmacard.cardemu (has extras) }

最佳答案

Chrome docs 中描述的“intent:”语法习惯于从网页启动应用程序 , Chrome 将处理 href并检索参数以通过 Android Intent 启动应用程序。
您提供的示例 URI 的方案是 intent:// ,默认不处理。
如果你想处理 intent:// URI,你需要create a deep link
如果您想从您的 Android 应用程序打开网页,您可以使用 ACTION_VIEW 操作并在 Intent 数据中指定网页 URL。

public void openWebPage(String url) {
Uri webpage = Uri.parse(url);
Intent intent = new Intent(Intent.ACTION_VIEW, webpage);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
}
}

// example
// openWebPage("https://privacybydesign.foundation/backend/irma/session/vsRjkZF2B2H17sBWmVZe")
更多信息 Intents and Intent Filters

关于Android 如何打开一个基于 Intent 的 Chrome URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67519444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com