Cordova 5 build命令正在删除iOS设备方向设置

Cordova 5 build命令正在删除iOS设备方向设置,第1张

概述使用Cordova 5.1.1时,执行“cordova build ios”时,先前在XCode项目中选择的任何设备方向设置都将被删除,而未选中方向设置复选框. 虽然“方向”配置首选项可能提供强制定位的方法,但我需要能够为iPad和iPhone设置不同的方向首选项. 所有以前的Cordova版本(低于5)都尊重这些设置.有任何想法吗? 使用XCode 6.3.2. 编辑: 根据@Abhinav G 使用Cordova 5.1.1时,执行“cordova build ios”时,先前在XCode项目中选择的任何设备方向设置都将被删除,而未选中方向设置复选框.

虽然“方向”配置首选项可能提供强制定位的方法,但我需要能够为iPad和iPhone设置不同的方向首选项.

所有以前的Cordova版本(低于5)都尊重这些设置.有任何想法吗?

使用XCode 6.3.2.

解决方法 编辑:

根据@Abhinav Gujjar,修复了导致cordova准备覆盖对.pList中的方向设置所做的手动更改的问题.但是,AFAIK还没有办法在config.xml中为iPad和iPhone设置不同的方向偏好,所以下面的答案就是这样.

更新:

我创建了插件cordova-custom-config,它包含了下面的挂钩,意味着可以在config.xml中定义特定于平台的自定义配置块(例如这些方向设置).所以你可以使用插件而不需要手动创建下面的钩子.

这是在Cordova 5.0.0 Cli – see here中引入的.

与此同时,我一直在使用after_prepare挂钩作为解决方法.只需将以下内容放在< your_project> /hooks/after_prepare/some_file.Js中,并根据需要更改方向设置:

#!/usr/bin/env node// Set support for all orIEnations in iOS .pList - workaround for this cordova BUG: https://issues.apache.org/jira/browse/CB-8953var 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','UIInterfaceOrIEntationPortraitUpsIDeDown'    ];    pList["UISupportedInterfaceOrIEntations"] = iPhoneOrIEntations;    pList["UISupportedInterfaceOrIEntations~ipad"] = iPadOrIEntations;}

注意:如果您还没有pList和xml2Js节点模块,则需要安装它们.

总结

以上是内存溢出为你收集整理的Cordova 5 build命令正在删除iOS设备方向设置全部内容,希望文章能够帮你解决Cordova 5 build命令正在删除iOS设备方向设置所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1025210.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存