android - 如何监听自定义 URI

标签 android 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,如果我从网页打开,它工作正常。所以我想让我们包括一些空值检查,但这并没有解决它。有什么建议我可以通过选择它来启动应用程序吗?

最佳答案

要在您的 Android 应用程序中注册一个协议(protocol),请向 AndroidManifest.xml 添加一个额外的 block 。

<manifest>
 <application>
   <activity>
           <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="dchub"/>
            </intent-filter>
   </activity>
 </application>
</manifest>

关于android - 如何监听自定义 URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3471503/

相关文章:

javascript - 如何在 ExtJS 4.1.0 Proxy 或 Reader 中更改请求 URI

iphone - 有什么可以在原生移动应用程序中实现而在 HTML5 网络应用程序中无法实现的?

android - 在测试用例 Espresso 之前清除数据库

android - 如何修复由对等 android 关闭的 javax.net.ssl.sslexception 连接

android - 了解写入文件时的 logcat 输出

android - 使用先前选择的值开始数字选择器

android - Google Exoplayer 如何从 assets/media.exolist.json 更改播放

ruby - 从 ruby​​ 中的字符串中删除子域

.net - 如何合并URI

c# - 在同一解决方案中获取另一个项目中图像的相对路径