如何监听自定义 URI
我正在开发一个有自己的 URI 前缀的应用程序。 (在本例中为 dchub://)
搜索并阅读了很多内容,但我有点困惑。
当有人在浏览器中单击以 dchub://
开头的链接时,是否可以启动我的应用程序?
到目前为止,找到了很多从应用程序打开浏览器的其他示例,但这不是我想要的。
更新
非常感谢,我已经想到了,现在我有点陷入下一部分。
Uri data = getIntent().getData();
if (data.equals(null)) { } else {
String scheme = data.getScheme();
String host = data.getHost();
int port = data.getPort();
}
如果我正常启动应用程序,我会遇到一些 nullpointerexception
s,如果我从网页打开,它工作正常。所以我想让我们对空值进行一些检查,但这并没有解决问题。有什么建议我可以通过选择它来启动该应用程序吗?
I am working on an application which has its own URI prefix. (dchub:// in this case)
Searching all over and read a lot but I got a bit confused.
Is it possible to start my application when someone clicks on a link starting with dchub://
in the browser?
So far found a lot of examples the other way around opening the browser from your app but that's not what I'm looking for.
Update
Thanks a lot, I've figured that, now I'm a bit stuck in the next part.
Uri data = getIntent().getData();
if (data.equals(null)) { } else {
String scheme = data.getScheme();
String host = data.getHost();
int port = data.getPort();
}
I got some nullpointerexception
s if I start the app normally, it works fine if I open from the webpage. So I thought lets include some check for nullvalue but that didn't solve it. any suggestions how I can start the app just by selecting it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
要在 Android 应用程序中注册协议,请向 AndroidManifest.xml 添加一个额外的块。
To register a protocol in your android app, add an extra block to the AndroidManifest.xml.
不要使用 data.equals(null)。这肯定会失败,你不能在空对象上调用方法,因此 NPE。
为什么是空代码块?在我看来,这要漂亮得多:
Don't use data.equals(null). That is bound to fail, you can't call methods on a null object, hence the NPE.
Why the emtpy code block? In my mind, this is a lot prettier:
试试这个代码:
Try this code: