根据 iOS 版本更改 Cordova 首选项

Posted

技术标签:

【中文标题】根据 iOS 版本更改 Cordova 首选项【英文标题】:Change Cordova preferences based on iOS version 【发布时间】:2018-01-30 08:37:07 【问题描述】:

这是从我的设备获取 ios 版本的函数:

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() 
var deviceVersion = device.version;
console.log(deviceVersion);

我需要一个函数,每次iOS版本低于或等于10.5时<preference name="StatusBarOverlaysWebView" value="true" />的值需要为真,如果iOS版本为11或更高需要为假。

false

true

我将此变量“deviceVersion”保存到名为 utils.js 的文件中,但我的首选项值保存在文件 config.xml 中。如何根据 javascript 上的变量将值更改为 xml 文件?

【问题讨论】:

【参考方案1】:
<if>
    <conditions>
        <condition var="ios-CFBundleVersion" operator="&gt;" >11.0.0</condition>
    </conditions>

    <statements>
        <preference name="StatusBarOverlaysWebView" value="true"/>
    </statements>
</if>

<else>
    <statements>
        <preference name="StatusBarOverlaysWebView" value="false"/>
    </statements>
</else>

最终做到了,对我来说效果很好

【讨论】:

【参考方案2】:

试试下面,可能会很疯狂

let versionStr = "\(deviceVersion)"
let float = versionStr.floatValue

if float > 11.0

   // do your stuff

else

   // Handle earlier Versions

【讨论】:

以上是关于根据 iOS 版本更改 Cordova 首选项的主要内容,如果未能解决你的问题,请参考以下文章

iCloud KeyValueStore 首选项更改并在各种设备上处理它们

更改我的 Cordova iOS 应用程序版本

Cordova 插件快速从 XML 中读取首选项

如何根据偏好更改显示的按钮[关闭]

(23)Powershell中的首选项变量

更改权限后无法在 Cordova iOS 上使用 Facebook SDK 登录