在全面屏發佈以後,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('----------'); }); })