[email protected]以上灵活修改配置

还记得我在此文【技巧】ionic3优雅解决启动前、后黑白屏问题中添加了一个勾子插件cordova-custom-config来修改配置的主题。

Cordova在6.4.0版本以后,增加了config-file和edit-config两个标签项,使得不需要再借用上述勾子插件即可修改配置,见文档。

其中注意一下,config-file是用于添加配置项,而edit-config是用于编辑配置项的.

现在cordova默认添加都7.0以上了,而降级到6.4.0也能兼容旧项目,那尝试去掉勾子插件去把上述文章中的配置方式改一下。

打开config.xml,添加配置项:


     
            
     

然后执行命令看效果:

ionic cordova build android

此时会抛出异常:

cordova AAPT: error: unbound prefix

搜索之,首先找到此文:
https://stackoverflow.com/questions/21115471/android-phonegap-error-error-parsing-xml-unbound-prefix
里面回复的意思是,用到一个未知标签或属性时要先绑定一个前缀。如用到了,所以应该先绑定以下命名空间:

xmlns:gap="http://phonegap.com/ns/1.0"

为了验证这种想法,又搜索此文:
https://forum.ionicframework.com/t/cordova-ionic-cli-hooks-for-modifying-androidmanifest-xml-or-ios-plist-file/12293/20

看标题和我们的使用场景有点出入,但还是我常说的一句话——殊途同归,原理差不多,等找到此人 AshConnell 的回复,便尝试一下,在config.xml文件最外层widget标签中添加xmlns:android="http://schemas.android.com/apk/res/android",变成:

 

再跑一次命令ionic cordova build android,没有错误,能正常生成。此时打开platform/android/AndroidManifest.xml 文件观察下效果:

    
            
                
                
            
        

发现正确合并替换主题theme,至此大功告成。

总结:为什么要引入xmlns:android这个命名空间前缀,是因为config.xml里面用到了这句,不加入无法识别android关键字。

你可能感兴趣的:([email protected]以上灵活修改配置)