- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试让我的应用响应这些方案:
my-app://product/XXX
和
my-app://
以下代码有效,但我收到警告,android:host 不能为空。它仍然有效,但是 - 是否有指定空主机的正确方法?
我不想将“*”指定为 android-host,因为还有其他处理不同操作的 Activity ,然后它们不会直接打开,但我得到一个选择器对话框来选择应该打开哪个 Activity 。
<activity android:name=".ui.OpenerActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" >
<intent-filter>
<data android:scheme="my-app" />
<data android:host="product" />
<data android:host="" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
非常感谢!
最佳答案
在您的 URI 中没有主机(或更正式的 权限)绝对没问题。想想常用的file:///tmp/example.file
请注意,虽然无主机的分层 URI 不是不透明(如 mailto:john@example.com
),但有一个路径。与文件 URI 一样,主机名被单个 /
替换。
因此,您的 URI 应该采用 my-app:///product/XXX
的形式。 Intent 过滤器可能如下所示:
<intent-filter>
<category android:name="android.intent.category.DEFAULT"/>
<action android:name="android.intent.action.VIEW"/>
<data android:host=""/>
<data android:scheme="my-app"/>
<data android:pathPrefix="/product"/>
<data android:pathPattern=".+"/>
</intent-filter>
您仍然会收到关于主机名为空的警告,这绝对没问题。此警告是检查 Firebase App Indexing 的结果,我想这只有在存在网站时才有意义(您将从中获取主机名,即整个 URI)。
由于您无论如何都不会使用索引,因此您可以通过将以下内容添加到项目的 lint.xml
来移除警告:
<!-- no app indexing without a hostname -->
<issue id="GoogleAppIndexingUrlError" severity="ignore"/>
有关更多详细信息,请查看 URI spec和 Wikipedia entry on file-URIs .
关于android - Intent 过滤器中空主机的说明符是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33611169/
这个问题已经有答案了: How does a for loop work, specifically for(;;)? (6 个回答) 已关闭 7 年前。 我正在查看 java.util.Random
平台:x32 上的 .NET Framework 3.5 SP1 在代码中留下空语句(“;”本身)是否存在任何性能问题? 要标记为答案,您是否还会教一个人(我?和其他阅读本文的人)钓鱼?意思是,如何确
我找到了有关在选中时更改实际复选标记颜色的说明,但我正在尝试弄清楚如何更改框的颜色。 我把盒子放在较暗的背景上,很难看清,所以我想让它变亮。 我已经尝试了大多数其他元素在 Materialise 中观
在 Java 中,如何生成空/“nil”的实例 java.util.UUID所有 128 位都为零的对象? 00000000-0000-0000-0000-000000000000 Nil UUID
我有一个带有 ListView 和另一个 Activity 的选项卡。那是我的代码: TabHost tabHost = getTabHost(); TabHost.TabSpec spec; I
当我做计算机科学圈第14章的题时,我发现了一些奇怪的事情。 问题说:“定义一个函数 postalValidate(S),它首先检查 S 是否代表有效的邮政编码:首先,删除所有空格;余数必须采用 L#L
clearfix div 中空注释的目的是什么?我假设这是针对某种较旧的浏览器填充程序;不确定你为什么要四处乱放空评论。似乎只有一两个 CSS 规则会更容易维护。 最佳答案 如果网站使用 displa
我在 IE8 中的 z-index 有问题(其他 IS 尚未测试): 以下 JS 创建了一些 html/css: document.write(''); document.write(' '
我是一名优秀的程序员,十分优秀!