《iOS 6高级开发手册(第4版)》——1.2节添加设备能力限制

1.2 添加设备能力限制
iOS 6高级开发手册(第4版)
应用程序的Info.plist属性列表使你能够在向iTunes提交应用程序时指定应用程序的要求。这些限制允许告诉iTunes应用程序需要哪些设备特性。

每个iOS单元都会提供一个独特的特性集。一些设备会提供照相机和GPS能力,另外一些则不会。一些设备具有机载陀螺仪、自动聚焦,以及其他强大的选项。你可以指定在设备上运行应用程序时需要哪些特性。

在Info.plist文件中包括UIRequiredDeviceCapabilities键时,iTunes将限制把应用程序安装到提供必需能力的设备。把这个列表作为一个字符串数组或者字典提供。

数组指定每个必需的能力;该数组中的每一项都必须存在于设备上。字典允许显式要求或禁止某个特性,字典键就是能力,字典值用于设置特性是必须存在(布尔值true)还是必须省略(布尔值false)。

表1-1中详细说明了当前的键。其中只包括应用程序绝对需要或者不能支持的那些特性。如果应用程序可以提供解决办法,就不要以这种方式添加限制。表1-1讨论了每个特性。当使用禁令而不是需求时,意义就颠倒了,例如,不能机载自动聚焦照相机或陀螺仪,或者不支持游戏中心(Game Center)访问。

例如,考虑一个应用程序,当在备有照相机的设备上运行时,它将提供一个选项用于拍摄图片。如果应用程序是在前置摄像头的iPod Touch单元上工作,就不要包括进静物照相机限制。可代之以从应用程序内检查照相机兼容性,并在合适时展示照相机选项。添加静物照相机限制将从潜在的顾客池中排除掉许多早期的iPod Touch(第1~3代)和iPad(第1代)所有者。

1.2.1 用户权限描述
为了保护隐私,最终用户必须明确地允许应用程序访问提醒信号、照片、位置、联系人和日历数据。为了说服用户接受,它有助于解释应用程序可以怎样使用这类数据,并且说明访问它的原因。给位于Info.plist文件顶层的以下键分配字符串值。当iOS提示用户有关特定于资源的权限时,它将显示这些字符串,作为它的标准对话框的一部分:

NSRemindersUsageDescription
NSPhotoLibraryUsageDescription
NSLocationUsageDescription
NSContactsUsageDescription
NSCalendarsUsageDescription

1.2.2 其他常用的Info.plist键
下面给出了你可能想在属性列表中分配的另外几个常用键,以及有关它们可以做什么的描述。

UIFileSharingEnabled(Boolean型,默认为关):允许用户从iTunes中访问应用程序的Documents文件夹的内容。这个文件夹出现在应用程序沙盒的顶级。
UIAppFonts(Array型,字体名称(包括其扩展)的字符串):指定在软件包中提供的自定义的TTF字体。在添加字体时,可以使用标准的UIFont调用访问它们。

UIApplicationExitsOnSuspend(Boolean型,默认为关):当用户单击Home按钮时使应用程序能够终止,而不是转移到后台。当启用这个键时,iOS将会终止应用程序,并从内存中清除它。
UIRequiresPersistentWifi(Boolean型,默认为关):指示iOS在应用程序活动时维持一条Wi-Fi连接。
UIStatusBarHidden(Boolean型,默认为关):如果启用这个键,则会在应用程序启动时隐藏状态栏。

UIStatusBarStyle(String型,默认为UIStatusBarStyleDefault):指定应用程序启动时的状态栏的风格。`

时间: 2024-11-05 12:14:11

《iOS 6高级开发手册(第4版)》——1.2节添加设备能力限制的相关文章

《iOS 6高级开发手册(第4版)》——1.4节秘诀:取回额外的设备信息

1.4 秘诀:取回额外的设备信息 iOS 6高级开发手册(第4版) sysctl()和sysctlbyname()允许获取系统信息.这些标准的UNIX函数用于询问操作系统有关硬件和OS的详细信息.看一眼Macintosh上的/usr/include/sys/sysctl.h包括文件,就能对所提供的范围类型有一个感觉.在那里,能够找到一份可以用作这些函数的参数常量的详尽列表. 这些常量使你能够检查核心信息,比如系统的CPU频率.可用的内存量等.秘诀1-2演示了这种功能.它引入了一个UIDevice

《iOS 6高级开发手册(第4版)》——2.8节秘诀:声明文档支持

2.8 秘诀:声明文档支持 iOS 6高级开发手册(第4版) 应用程序文档并不仅限于它们创建或者从Internet下载的文件.如你在前一个秘诀中所发现的,应用程序可能处理某些文件类型.它们可能打开从其他应用程序传递过来的项目.你已经从发送方的角度见过了文档共享,它使用"open in"(打开在)控制器把文件导出到其他应用程序.现在应该从接收方的角度探讨它. 应用程序在它们的Info.plist属性列表中声明它们对某些文件类型的支持.Launch Services(启动服务)系统将读取该

《iOS 6高级开发手册(第4版)》——2.5节秘诀:Quick Look预览控制器

2.5 秘诀:Quick Look预览控制器 iOS 6高级开发手册(第4版) Quick Look预览控制器类允许用户预览许多文档类型.这个控制器支持文本.图像.PDF.RTF.iWork文件.Microsoft Office文档(Office 97及更高版本,包括doc.ppt.xls等)和逗号分隔的值(comma-separated value,csv)文件.你提供一种受支持的文件类型,Quick Look控制器将为用户显示它.集成的系统提供的活动视图控制器有助于共享预览的文档,如图2-6

《iOS 6高级开发手册(第4版)》——2.9节秘诀:创建基于URL的服务

2.9 秘诀:创建基于URL的服务 iOS 6高级开发手册(第4版) Apple的内置应用程序提供了多种可以通过URL调用访问的服务.可以要求Safari打开Web页面,让Maps显示一幅地图,或者使用mailto:风格的URL开始在Mail中撰写一封信件.URL模式指出现在冒号之前的URL的第一部分,比如http或ftp. 这些服务可以工作,因为iOS知道如何将URL模式匹配到应用程序.以http:开头的URL将在Mobile Safari中打开.mailto:URL总会链接到Mail.你可能

《iOS 6高级开发手册(第4版)》——2.3节秘诀:监测Documents文件夹

2.3 秘诀:监测Documents文件夹 iOS 6高级开发手册(第4版) iOS文档并没有受困在它们的沙盒中,你可以并且应该与用户共享它们.应该允许用户直接控制他们的文档,以及访问他们可能在设备上创建的任何资料.一个简单的Info.plist设置将使iTunes能够显示用户的Documents文件夹的内容,并使那些用户能够根据需要添加和删除资料. 在将来某个时间,你可能使用一个简单的NSMetadataQuery监测器来监视Documents文件夹并报告更新.在编写本书时,元数据监视还没有扩

《iOS 6高级开发手册(第4版)》——1.14节跟踪用户

1.14 跟踪用户 iOS 6高级开发手册(第4版) 跟踪是开发者的一种不幸的现实生活.Apple不赞成使用UIDevice属性,该属性提供了绑定到设备硬件的唯一标识符.Apple利用两个标识符属性取代UIDevice属性.它使用identifierForAdvertising属性返回当前设备所独有的一个特定于设备的字符串,并使用identifierForVendor属性提供一个绑定到每位应用程序供应商的字符串.无论使用的是哪个应用程序,这都应该会返回相同的唯一字符串,它不是顾客id.不同设备上

《iOS 6高级开发手册(第4版)》——2.7节秘诀:使用文档交互控制器

2.7 秘诀:使用文档交互控制器 iOS 6高级开发手册(第4版) UIDocumentInteractionController类允许应用程序给用户展示一个选项菜单,允许他们以各种方式使用文档文件,利用这个类,用户可以利用以下特性. iOS应用程序之间的文档共享(即"在某个应用程序中打开这个文档"). 使用QuickLook进行文档预览. 活动控制器选项,比如打印.共享和社交网络. 你已经在本章前面的动作中见过后两种特性.文档交互类在这些特性顶部添加了应用程序间的共享,如图2-7所示

《iOS 6高级开发手册(第4版)》——1.10节秘诀:Core Motion基础

1.10 秘诀:Core Motion基础 iOS 6高级开发手册(第4版) Core Motion框架集中了运动数据处理.该框架是在iOS 4 SDK中引入的,用于取代你刚才阅读到的直接加速计访问.它提供了对3个关键的机载传感器的集中式监测.这些传感器由陀螺仪.磁力计和加速计组成,其中陀螺仪用于测量设备的旋转,磁力计提供了一种测量罗盘方位的方式,加速计用于检测沿着3根轴的重力变化.第四个入口点称为设备移动(device motion),它把全部3种传感器都结合进单个监测系统中. Core Mo

《iOS 6高级开发手册(第4版)》——1.7节同步获取当前的加速计角度

1.7 同步获取当前的加速计角度iOS 6高级开发手册(第4版)有时,你可能想在不用把自己设定为完全委托的情况下查询加速计.下面的方法打算在UIDevice类别内使用,允许与x/y平面(iOS设备的正面)一起同步返回当前的设备角度.为此,可输入一个新的运行循环,等待加速计事件,从那个回调中获取当前的角度,然后让运行循环返回那个角度: - (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAccelerati