EDIT:
@Abhinav Gujjar Nach dem Problem verursacht cordova prepare
manuelle Änderungen an Orientierung Einstellungen im .plist fixiert wurde gemacht, zu überschreiben. Wie auch immer, es gibt immer noch keine Möglichkeit, in der Datei config.xml verschiedene Orientierungseinstellungen für iPad und iPhone vorzunehmen.
UPDATE:
habe ich das Plugin cordova-custom-config, die der Haken unter einpackt und Mittel plattformspezifische benutzerdefinierte Konfigurationsblöcke (wie diese Orientierungseinstellungen) können in config.xml definiert werden. Sie können also das Plug-In verwenden, statt den Haken unten manuell erstellen zu müssen.
Dies wurde in der Cordova 5.0.0 CLI eingeführt - see here.
In der Zwischenzeit habe ich einen After_prepare-Hook als Workaround verwendet. Legen Sie einfach die folgende in <your_project>/hooks/after_prepare/some_file.js
und die Ausrichtungseinstellungen entsprechend ändern:
#!/usr/bin/env node
// Set support for all orienations in iOS .plist - workaround for this cordova bug: https://issues.apache.org/jira/browse/CB-8953
var platforms = process.env.CORDOVA_PLATFORMS.split(',');
platforms.forEach(function(p) {
if (p == "ios") {
var fs = require('fs'),
plist = require('plist'),
xmlParser = new require('xml2js').Parser(),
plistPath = '',
configPath = 'config.xml';
// Construct plist path.
if (fs.existsSync(configPath)) {
var configContent = fs.readFileSync(configPath);
// Callback is synchronous.
xmlParser.parseString(configContent, function (err, result) {
var name = result.widget.name;
plistPath = 'platforms/ios/' + name + '/' + name + '-Info.plist';
});
}
// Change plist and write.
if (fs.existsSync(plistPath)) {
var pl = plist.parseFileSync(plistPath);
configure(pl);
fs.writeFileSync(plistPath, plist.build(pl).toString());
}
process.exit();
}
});
function configure(plist) {
var iPhoneOrientations = [
'UIInterfaceOrientationLandscapeLeft',
'UIInterfaceOrientationLandscapeRight',
'UIInterfaceOrientationPortrait',
'UIInterfaceOrientationPortraitUpsideDown'
];
var iPadOrientations = [
'UIInterfaceOrientationLandscapeLeft',
'UIInterfaceOrientationLandscapeRight',
'UIInterfaceOrientationPortrait',
'UIInterfaceOrientationPortraitUpsideDown'
];
plist["UISupportedInterfaceOrientations"] = iPhoneOrientations;
plist["UISupportedInterfaceOrientations~ipad"] = iPadOrientations;
}
Hinweis: Sie werden die plist und xml2js Knotenmodule installieren müssen, wenn Sie sie nicht bereits haben.
Diese Lösung funktioniert perfekt Dave angeben. Zuerst habe ich plist und xml2js ohne Sudo installiert und hatte Probleme. Sobald ich beide deinstalliert und mit Sudo neu installiert habe, funktionierte alles perfekt.Danke noch einmal. – sdesapio