我在Xamarin Android中创建应用。它具有自定义URI方案和通用链接支持,并且使用的特定URI方案和通用链接域是不同的,具体取决于我是否构建生产应用程序或用于QA目的的应用程序的测试版本。这些设置最终作为意图过滤器在AndroidManifest.xml
文件中结束。
Xamarin's documentation表示在开发Xamarin Android应用时,可以/应该使用自定义属性来指定Activity
类上的intent过滤器。然后,Xamarin构建过程在构建时将这些转换为相关的XML部分,并将它们注入AndroidManifest.xml
文件。
这很有用,但是当我使用自动构建过程在构建时交换这些intent过滤器的某些属性时,这有点限制。理想情况下,我想自己手动控制AndroidManifest.xml
文件的这些部分,因此我可以让我的构建脚本更新相关部分并直接添加/删除/更改意图过滤器部分。
我的问题是这是否可行和/或是否受到支持。我可以简单地省略IntentFilterAttribute
类的Activity
声明并安全地在XML文件中设置它们吗?或者,Xamarin是否要求我使用其过滤器属性,并且出于某种原因避免出现问题?
答案 0 :(得分:1)
具有讽刺意味的是,我今天早上提出了一项关于高级清单合并的增强功能:https://bugzilla.xamarin.com/show_bug.cgi?id=52857
在XML文件和[Attribute]
中执行此操作的一个问题是,在构建时(EX:您的<activity>
元素)之前不会生成其中一些项目。因此,更优选的是将其作为属性进行,以便在生成该元素时,它还知道要在其中放置哪些intent过滤器。
如果你有一个构建过程找到正确的<activity>
节点并在下面插入子节点,它可以正常工作,但它在Xamarin.Android构建系统中非常“容易出错”。
因此,虽然不需要属性,但出于安全原因,建议使用它们。这些属性会阻止您通过手动AndroidManifest.xml
修改来拍摄自己的脚。