在全面屏发布以后,Android官方提供了适配方案,即提升App所支持的最大屏幕纵横比,实现很简单,在AndroidManifest.xml中可作以下配置:
<manifest> <application> <meta-data android:name="android.max_aspect" android:value="2.1"/> </application> </manifest>
若是hook文件没有执行,须要在config.xml内加一个配置去执行。<hook type="after_prepare" src="hooks/after_prepare/set_full_screen.js"/>node
hook文件代码以下android
set_full_screen.jsjson
#!/usr/bin/env node var _ = require('lodash'); var fs = require('fs'); var path = require('path'); var spawnSync = require('child_process').spawnSync; var rootdir = process.argv[2]; var xml2js = require('xml2js'); //xml->json //xml2js默认会把子子节点的值变为一个数组, explicitArray设置为false var xmlParser = new xml2js.Parser({explicitArray : false, ignoreAttrs : false}) //json->xml var jsonBuilder = new xml2js.Builder(); fs.readFile('platforms/android/AndroidManifest.xml','utf-8',function(err,xml) { // xml -> json xmlParser.parseString(xml, function (err, result) { // var time=new Date().getTime(); // console.log(result.widget["$"]["version"].replace(/\./,'0').replace(/\./,'')) // result.manifest["meta-data"]=[ // { '$': { // 'android:name': 'android.max_aspect', // 'android:value': '2.1' // } // } // ] result.manifest["application"]["meta-data"]=[ { '$': { 'android:name': 'android.max_aspect', 'android:value': '2.1' } } ] // result.manifest["application"]["$"]["android:resizeableActivity"]="true" //将返回的结果再次格式化 // console.log(JSON.stringify(result)); //json --> xml var builder = new xml2js.Builder( ); var jsonxml = builder.buildObject(result); fs.writeFileSync('platforms/android/AndroidManifest.xml', jsonxml); console.log('----------'); console.log('更新AndroidManifest.xml适配全面屏'); console.log('----------'); }); })