分享:身份证阅读器谷歌Chrome浏览器&火狐Firefox浏览器接口控件&SDK二次开发包

一直以来身份证阅读器采用ActiveX控件形式在浏览器端跑,这种方式就只支持IE浏览器和IE内核的浏览器。

随着现在很多软件系统对新一代HTML5的热宠以及系统要求使用更快的谷歌Chrome浏览器和火狐Firefox浏览器,身份证读卡器采用ActiveX形式就显得无能为力了。根据这个情况,特采用别的方式支持谷歌浏览器。

贴出代码:


<html>
<head>
<title>谷歌Chrome浏览器身份证阅读器测试页面 - 火狐Firefox身份证读卡器网页浏览器SDK开发包接口</title>
<meta name="Keywords" content="身份证阅读器,身份证读卡器,谷歌Chrome,火狐Firefox,SDK,开发接口" />
<meta name="Description" content="第三代身份证阅读器支持谷歌Chrome浏览器使用和火狐Firefox浏览器使用的多功能系列,谷歌Chrome浏览器身份证阅读器测试页面 - 火狐Firefox身份证读卡器网页浏览器SDK开发包接口。" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
td {background-color:#eeeeee}
input {width:430px;}
.butt {width:150px; height:30px}
.title {padding-left:10px; width:130px}

</style>
</head>
<!--
<object id="objActiveX" classid="clsid:03545152-1F24-4555-B9BD-E4D91184CFE2" width=0 height=0"></object>
-->
<object id="objActiveX" TYPE="application/hxgc-device.j10" width=0 height=0></object>
<body>
<p align="center">
<a href="IDTEST.html"><strong>单次读卡</strong></a>
<a href="IDTEST2.html"><strong>循环读卡</strong></a>
</p>
<table width="750px" border="0" cellspacing="1" cellpadding="2" align="center" bgcolor="#FFFFFF">
<tr>
<td colspan="3" align="center">
<input class="butt" type="button" name="OpenReader" value="打开设备" onClick="openReader();">
<input class="butt" type="button" name="startReadCard" value="读二代证" onClick="readIDCard();">
<input class="butt" type="button" name="CloseReader" value="关闭设备" onClick="closeReader();">
<input class="butt" type="button" name="Clear" value="清空信息" onClick="clearText();">
</td>
</tr>
<tr>
<td class="title">照片格式:</td>
<td width="100px">
<input type="text" name="text_zpFormat" id="text_zpFormat" value="" placeholder="非必输,照片格式如:bmp,jpg,png,gif,tiff,psd,WMF,pcx,tga,pcx等" >
</td>
<td rowspan="7" align="center"><img id="PhotoID" name="Photo" style="width:96px; height:118px;"/></td>
</tr>
<tr>
<td class="title">身份证物理卡号(DN码):</td>
<td width="430px">
<input type="text" name="text_ID" id="text_ID" value="" readonly >
</td>
</tr>
<tr>
<td class="title">姓名:</td>
<td width="430px">
<input type="text" name="text_name" id="text_name" value="" readonly >
</td>

</tr>
<tr>
<td class="title">性别:</td>
<td>
<input type="text" name="text_sex" id="text_sex" value="" readonly >
</td>
</tr>
<tr>
<td class="title">民族:</td>
<td>
<input type="text" name="text_nation" id="text_nation" value="" readonly >
</td>
</tr>
<tr>
<td class="title">出生:</td>
<td>
<input type="text" name="text_birthday" id="text_birthday" value="" readonly >
</td>
</tr>
<tr>
<td class="title">地址:</td>
<td>
<input type="text" name="text_address" id="text_address" value="" readonly >
</td>
</tr>
<tr>
<td class="title">身份证号:</td>
<td colspan="2">
<input type="text" name="text_idNum" id="text_idNum" value="" readonly >
</td>
</tr>
<tr>
<td class="title">签发机关:</td>
<td colspan="2">
<input type="text" name="text_dept" id="text_dept" value="" readonly >
</td>
</tr>
<tr>
<td class="title">开始期限:</td>
<td colspan="2">
<input type="text" name="text_effDate" id="text_effDate" value="" readonly >
</td>
</tr>
<tr>
<td class="title">结束期限:</td>
<td colspan="2">
<input type="text" name="text_expDate" id="text_expDate" value="" readonly >
</td>
</tr>
<tr>
<td class="title">返回数据:</td>
<td colspan="2">
<textarea id="text_result" rows="15" name="text_result" id="text_result" style="color:#FF0000;width:94.3%;" cols="70" readonly></textarea>
</td>
</tr>
</table>

<script type="text/javascript" >
var socket;
var sendFlag=0;
var zpFormat;
function clearText()
{
document.getElementById("text_ID").value = "";
document.getElementById("text_name").value = "";
document.getElementById("text_sex").value = "";
document.getElementById("text_nation").value = "";
document.getElementById("text_birthday").value = "";
document.getElementById("text_address").value = "";
document.getElementById("text_idNum").value = "";
document.getElementById("text_dept").value = "";
document.getElementById("text_effDate").value = "";
document.getElementById("text_expDate").value = "";
document.getElementById("text_result").value = "";
document.getElementById("PhotoID").src = "";
}

function openReader() {
var host = "";
if(socket == null){
resultMsg("设备连接成功.");
socket = new WebSocket(host);
}else{
resultMsg("设备已开打.");
}
try {
socket.onopen = function (msg) {
clearZP(); //清除zp文件夹的身份证头像
};
socket.onerror = function(){
alert("请安装驱动.");
};
socket.onmessage = function (msg) {
if (typeof msg.data == "string") {
var msgM=msg.data+"";
if(sendFlag==1){
//resultMsg("清除头像成功.");
openReaderStart();
}else if(sendFlag==2){
if(msgM[0]=="1"){ //1:连接设备成功
resultMsg("连接成功.");
}else{ //2:连接设备失败
resultMsg("请连接设备.");
}
}else if(sendFlag==3){
if(msgM[0] == "0"){
resultMsg("身份证阅读器异常,请联系管理员.");
}else if(msgM[0]=="3"){
resultMsg("请连接设备.");
}else if(msgM[0]=="4"){
resultMsg("请放身份证.");
}else if(msgM[0]=="5"){
resultMsg("读取身份证信息失败,请查身份证是否有效.");
}else if(msgM[0]=="6"){
resultMsg("读取身份证头像失败,请查身份证是否有效.");
}else{
//获得身份信息
document.getElementById("text_ID").value= msgM.match(/identityCardID(\S*)identityCardID/)[1]; //证件ID
document.getElementById("text_name").value = msgM.match(/name(\S*)name/)[1]; //姓名
document.getElementById("text_sex").value = msgM.match(/sex(\S*)sex/)[1]; //性别
document.getElementById("text_nation").value = msgM.match(/nation(\S*)nation/)[1]; //民族
document.getElementById("text_birthday").value = msgM.match(/birthDate(\S*)birthDate/)[1]; //出生日期
document.getElementById("text_address").value = msgM.match(/address(\S*)address/)[1]; //地址
document.getElementById("text_idNum").value = msgM.match(/IDCode(\S*)IDCode/)[1]; //身份证号
document.getElementById("text_dept").value = msgM.match(/issuingAuthority(\S*)issuingAuthority/)[1]; //签发机关
document.getElementById("text_effDate").value = msgM.match(/beginPeriodOfValidity(\S*)beginPeriodOfValidity/)[1]; //有效日期起始
document.getElementById("text_expDate").value = msgM.match(/endPeriodOfValidity(\S*)endPeriodOfValidity/)[1]; //有效日期截止
document.all("PhotoID").src = "data:image/jpeg;base64,"+msgM.match(/##(\S*)##/)[1];//显示头像
}
}else if(sendFlag==4){
closeSocket();
if(msgM[0] == "1"){ //1:关闭设备成功
resultMsg("关闭设备成功.");
}
}
}
else{
alert("连接异常,请检查是否成功安装华旭J15S驱动.");
}
};
}
catch (ex) {
alert("连接异常,请检查是否成功安装华旭J15S驱动.");
}
}

function resultMsg(msg) {
document.getElementById("text_result").value += "\r\n" + msg;
}
//清除BMP图片
function clearZP() {
zpFormat=document.getElementById("text_zpFormat").value;
sendFlag=1;
socket.send("SDT_ClearZP#"+zpFormat+"#");
}
//连接设备
function openReaderStart() {
sendFlag=2;
socket.send("SDT_OpenReader#");
}
//读取身份信息
function readIDCard() {
zpFormat=document.getElementById("text_zpFormat").value;
sendFlag=3;
try {
socket.send("SDT_ReadCard#"+zpFormat+"#");
}
catch (ex) {
resultMsg("请打开设备.");
}
}
//关闭设备
function closeReader() {
sendFlag=4;
try {
socket.send("SDT_CloseReader#");
}
catch (ex) {
resultMsg("请打开设备.");
}
}

catch (ex) {
}
};
</script>

</body>
</html>



测试版本:
谷歌Chrome:58.0.3029.96 /
火狐Firefox:54.0.1 /
360安全浏览器:8.1.1.258 /
Internet Explorer:IE11

控件下载点这里,百度网盘
...全文
5180 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你好,我想问问有没有在linux火狐或者chrome的身份证阅读插件
airwolf1217 2017-09-04
  • 打赏
  • 举报
回复
有点用 mark一下
优看TXTSDK For iOS是优看科技出品的iOS平台下TXT阅读器底层程序库,提供TXT阅读器最基础的功能,适合需要高级定制功能的开发者。更多PDF、Epub类阅读sdk请登录:http://www.ycanpdf.cn。 此外,我们还提供基于以上核心技术的定制开发服务,开发人员可通过所提供的示例代码快速上手,更专注于程序开发而不是TXT,让您的应用快速投入市场。 主要功能: - 支持翻页动画:滑动,仿真,简洁 - 支持设置字体 - 支持设置行间距 - 支持设置文字颜色,背景色 - 支持夜间模式 - 支持搜索 - 支持文字选择,添加笔记,显示书签等操作 - 支持目录提取(可自定义) - 支持页面缩放 - 支持其他基本阅读功能 优看TXTSDK For iOS支持下列操作环境: - 运行环境:iOS 8或更高版本 - 开发要求:XCode 8.2.1或更高版本 - 支持的语言:Objective-C 本公司经过近几年的持续的技术积累,产品线有了较大拓展,除了原有的PDF在线阅读有了较大优化和更新(目前已经能够支持Google Chrome、Mozilla Firefox、苹果Safari、Opera等几乎所有主流的浏览器)以外,还推出了以下几款新产品: 1、 移动端阅读系列:含PDF、EPUB、TXT等格式的阅读器SDK,支持安卓和IOS两个平台; 2、 网上书城、网上党员(公职人员)教育学习平台,同时支持PC、安卓、IOS,支持DRM(数字版权保护)功能; 3、 PDF类转换控件、PDF电子签章控件等PDF扩展应用。 商务代理/合作联系方式: 联系电话:400-092-1680 029-88869745 QQ:1003059540 E-mail:sales@ycanpdf.cn
优看PDFSDK For Android是优看科技出品的Android平台下PDF底层程序库,提供PDF及TXT阅读器最基础的功能,适合需要高级定制功能的开发者。优看PDF SDK For Android提供Android java接口,允许开发人员将PDF显示、TXT显示、导航、搜索、笔记、平滑翻页等功能无缝地集成到Android应用程序中。如果需要iOS版PDFSDK请访问http://www.ycanpdf.cn/2017/04/623。 此外,我们还提供基于以上核心技术的定制开发服务,开发人员可通过所提供的示例代码快速上手,更专注于程序开发而不是PDF及TXT,让您的应用快速投入市场。 以下简单介绍优看PDFSDK For Android在Android平台上的具体应用实例: - 支持PDF及TXT基本阅读功能(缩放、目录跳转、指定页跳转、搜索、记录阅读进度等) - 支持文字选择,添加笔记,显示书签等操作 - 支持画线,箭头,椭圆等功能(PDF文件) - 支持翻页动画:滑动 - 支持夜间模式 - 支持设置背景色,字体大小,行间距(TXT文件) - 支持打开受标准密码保护的PDF文件 优看PDF SDK Android版本支持下列操作环境: - 运行环境:Android4.0或更高版本 - 支持的语言:Java 本公司经过近几年的持续的技术积累,产品线有了较大拓展,除了原有的PDF在线阅读有了较大优化和更新(目前已经能够支持Google Chrome、Mozilla Firefox、苹果Safari、Opera等几乎所有主流的浏览器)以外,还推出了以下几款新产品: 1、移动端阅读系列:含PDF、EPUB、TXT等格式的阅读器SDK,支持安卓和IOS两个平台; 2、网上书城、网上党员(公职人员)教育学习平台,同时支持PC、安卓、IOS,支持DRM(数字版权保护)功能; 3、PDF类转换控件、PDF电子签章控件等PDF扩展应用。 商务代理/合作联系方式: 联系电话:400-092-1680 029-88869745 QQ:1003059540 E-mail:sales@ycanpdf.cn
优看PDF ReaderSDK For iOS是优看科技出品的iOS平台下阅读器程序库。只需简单的接口调用,即可使你的app拥有阅读功能,适合快速开发阅读器的开发者。优看PDF ReaderSDK For iOS提供了简单易用的Objective-C接口,允许开发人员将PDF显示、导航、搜索、笔记、自动裁白边、翻页动画等功能无缝地集成到iOS应用程序中。如需高级定制功能,可使用本公更底层的产品:优看PDF SDK for iOS。 此外,我们还提供基于以上核心技术的定制开发服务,开发人员可通过所提供的示例代码快速上手,更专注于程序开发而不是PDF,让您的应用快速投入市场。 以下简单介绍优看PDF ReaderSDK For iOS在iOS平台上的具体应用实例: - 支持PDF基本阅读功能(缩放、目录跳转、指定页跳转、搜索、记录阅读进度) - 支持文字选择,添加笔记,显示书签等操作 - 支持翻页动画:滑动、仿真、简洁 - 支持夜间模式 - 支持裁边(手动/自动) - 支持打开受标准密码保护的PDF文件 优看PDF ReaderSDK For iOS支持下列操作环境: - 运行环境:iOS 8或更高版本 - 开发要求:XCode 8.2.1或更高版本 - 支持的语言:Objective-C 本公司经过近几年的持续的技术积累,产品线有了较大拓展,除了原有的PDF在线阅读有了较大优化和更新(目前已经能够支持Google Chrome、Mozilla Firefox、苹果Safari、Opera等几乎所有主流的浏览器)以外,还推出了以下几款新产品: 1、 移动端阅读系列:含PDF、EPUB、TXT等格式的阅读器SDK,支持安卓和IOS两个平台; 2、 网上书城、网上党员(公职人员)教育学习平台,同时支持PC、安卓、IOS,支持DRM(数字版权保护)功能; 3、 PDF类转换控件、PDF电子签章控件等PDF扩展应用。 商务代理/合作联系方式: 联系电话:400-092-1680 029-88869745 QQ:1003059540 E-mail:sales@ycanpdf.cn
内容简介   本书全面探讨了 iphone平台的两种编程方式 ——web开发和 sdk编程。全书结合示例对这两种编程方式的基本流程、基本原理和基本原则给出了详细而通俗的讲解。在 web开发方面,分别介绍了三个 iphone web库,即 webkit、iui和 canvas,并讨论了 web开发环境 dashcode,最后阐述 web应用程序的调试。在 sdk开发方面,详细描述其各种组件和功能,括 xcode、interface builder、视图控制器、用户交互、sdk工具、加速计和 gps、媒体、图形等。.    本书适合所有 iphone开发人员学习参考。... 目录 第一部分 iphone编程简介. 第1章 iphone简介2 1.1 iphone核心规范3 1.1.1 iphone的输入及输出规范3 1.1.2 iphone网络规范4 1.1.3 iphone浏览器规范5 1.1.4 iphone的其他硬件特性5 1.2 iphone在行业中的比较6 1.2.1 物理比较6 1.2.2 具有竞争力的因特网浏览6 1.2.3 移动web标准7 1.2.4 其他创新7 1.3 iphone的独特之处7 1.4 理解iphone输入和输出8 1.4.1 输出和iphone视区8 1.4.2 输出和方向9 1.4.3 输入和iphone定位机制10 1.5 小结11 第2章 web还是sdk12 2.1 比较两种编程风格12 .2.2 核心思想:编程的连续性13 2.3 优点和缺点14 2.3.1 web开发14 2.3.2 sdk开发15 2.3.3 程序平台16 2.4 独立iphone开发17 2.4.1 web开发模型17 2.4.2 sdk开发模式18 2.5 集成iphone开发19 2.5.1 镜像开发19 2.5.2 混合开发19 2.5.3 客户机—服务器开发20 2.5.4 关于集成的最后想法20 2.6 小结20 第二部分 为iphone设计网页 第3章 为iphone重新开发网页22 3.1 iphone视区23 3.1.1 更改整站视区24 3.1.2 更改局部视区24 3.1.3 视区属性和常量25 3.2 实现“iphone友好的”网页26 3.2.1 避免缺少iphone功能26 3.2.2 创建链接28 3.2.3 web开发中的良好习惯28 3.2.4 解决常见问题29 3.3 实现“iphone优化的”网页31 3.3.1 通过user_agent检测iphone31 3.3.2 通过css检测iphone31 3.3.3 使用css进行优化32 3.4 使用iphone chrome32 3.4.1 三个栏32 3.4.2 web剪贴33 3.5 捕获iphone事件34 3.5.1 单指触摸34 3.5.2 两指手势35 3.6 重新显示网页36 3.6.1 gmail iphone页面36 3.6.2 facebook iphone页面37 3.7 支持非iphone用户38 3.8 小结39 第4章 高级webkit和文本web应用程序40 4.1 webkit简介40 4.1.1 新的html元素41 4.1.2 新的css元素41 4.2 css变换、过渡和动画43 4.2.1 变换函数43 4.2.2 过渡函数44 4.2.3 动画函数47 4.3 webkit数据库48 4.3.1 加载数据库48 4.3.2 运行事务48 4.3.3 一个示例数据库49 4.4 调整chrome51 4.5 识别触摸和手势52 4.5.1 访问事件52 4.5.2 转换事件53 4.5.3 访问触摸53 4.5.4 访问手势55 4.6 识别方向56 4.7 即将推出的特性:css渐变和蒙版57 4.7.1 css渐变57 4.7.2 css蒙版58 4.7.3 canvas替代方法58 4.8 小结59 第5章 使用iui开发web应用程序60 5.1 创建你自己的iphone ui60 5.1.1 图形界面60 5.1.2 iphone数据范型62 5.1.3 其他iphone设计元素62 5.2 准备iui63 5.3 使用iui进行开发64 5.3.1 iui工具栏64 5.3.2 iui列表65 5.3.3 iui对话框67 5.3.4 iui搜索支持ajax68 5.3.5 iui面板和行68 5.3.6 iui按钮70 5.3.7 iui属性70 5.4 创建iui后端71 5.5 其他iui技巧72 5.5.1 组织代码72 5.5.2 改善数据代码清单73 5.5.3 压缩iui74 5.5.4 选择不同的外观74 5.6 集成iui与其他库75 5.6.1 结合jquery与iui75 5.6.2 结合iui与webkit76 5.7 小结77 第6章 使用canvas开发web应用程序78 6.1 准备canvas78 6.1.1 启用canvas78 6.1.2 确保兼容性79 6.1.3 合并功能79 6.2 绘制路径80 6.2.1 基本路径命令81 6.2.2 曲线命令82 6.3 绘制形状84 6.3.1 绘制矩形84 6.3.2 编写形状函数85 6.4 创建样式:颜色、渐变和线条86 6.4.1 颜色样式86 6.4.2 渐变样式86 6.4.3 线条样式87 6.5 修改合成与剪切88 6.5.1 全局变量88 6.5.2 剪切路径89 6.6 变换和恢复90 6.6.1 变换90 6.6.2 状态栈90 6.7 整合图像、模式和文本91 6.7.1 图像命令91 6.7.2 模式命令92 6.7.3 文本命令92 6.8 合并功能93 6.9 应用动画93 6.10 小结95 第7章 使用dashcode构建web应用程序96 7.1 dashcode简介96 7.1.1 开始dashcode项目97 7.1.2 dashcode剖析97 7.1.3 运行dashcode项目100 7.1.4 部署dashcode项目100 7.2 编写dashcode程序101 7.2.1 使用库部件102 7.2.2 添加动作按钮104 7.2.3 使用基于列表的browser模板105 7.2.4 使用stacklayout部件106 7.2.5 探究dashcode的其余方面108 7.3 集成dashcode与已有库109 7.3.1 集成dashcode与webkit109 7.3.2 集成dashcode与iui110 7.3.3 集成dashcode与canvas110 7.3.4 更深的集成110 7.4 小结110 第8章 调试iphone网页111 8.1 在本地使用apache111 8.2 使用桌面浏览器进行调试112 8.2.1 使用safari112 8.2.2 使用firefox113 8.2.3 使用iphone仿真器115 8.3 调试iphone115 8.3.1 使用iphone调试工具..116 8.3.2 使用bookmarklet116 8.4 分析iphone117 8.5 小结118 第9章 适用于web开发人员的sdk编程119 9.1 c语言概念简介119 9.1.1 声明和类型120 9.1.2 内存管理和指针121 9.1.3 文件结构和指令121 9.1.4 编译122 9.1.5 其他元素122 9.2 面向对象编程简介123 9.2.1 对象和类123 9.2.2 消息传递124 9.3 模型—视图—控制器(mvc)模式125 9.4 小结125 第三部分 sdk基本原理 第10章 objective-c和iphone os128 10.1 下载sdk128 10.1.1 安装sdk128 10.1.2 sdk剖析130 10.2 objective-c介绍131 10.2.1 概述131 10.2.2 消息132 10.2.3 类定义133 10.2.4 属性135 10.2.5 其他编译器指令137 10.2.6 类别和协议138 10.2.7 objective-c总结138 10.3 iphone os介绍139 10.3.1 iphone os剖析139 10.3.2 iphone对象的层次结构140 10.3.3 窗口和视图141 10.4 iphone os的方法142 10.4.1 对象创建142 10.4.2 内存管理143 10.4.3 事件响应145 10.4.4 生命周期管理146 10.5 小结146 第11章 使用xcode147 11.1 xcode简介147 11.1.1 剖析xcode147 11.1.2 在xcode中编译和执行148 11.2 在xcode中创建第一个项目:hello, world!149 11.2.1 理解main.m149 11.2.2 理解应用程序委托150 11.2.3 编写“hello, world!”151 11.3 在xcode中新建类154 11.3.1 新类简介154 11.3.2 头文件154 11.3.3 源代码文件155 11.3.4 链接156 11.4 xcode的其他功能157 11.4.1 在xcode中添加框架157 11.4.2 在xcode中使用其他模板157 11.4.3 xcode提示和技巧158 11.5 小结159 第12章 使用interface builder160 12.1 interface builder介绍160 12.1.1 interface builder剖析160 12.1.2 在interface builder中模拟163 12.2 在interface builder中创建第一个项目:图片和网页163 12.2.1 新建对象163 12.2.2 操作图形对象164 12.2.3 使用inspector窗口164 12.2.4 使用图片166 12.3 在interface builder中建立连接167 12.3.1 声明iboutlet167 12.3.2 连接对象167 12.3.3 使用iboutlet编写代码168 12.4 其他interface builder功能169 12.4.1 建立其他连接169 12.4.2 创建外部对象170 12.4.3 初始化interface builder对象170 12.4.4 访问.xib文件170 12.4.5 新建.xib文件171 12.5 小结171 第13章 创建基本视图控制器172 13.1 视图控制器家族172 13.2 基本的视图控制器173 13.2.1 视图控制器的分析图173 13.2.2 创建视图控制器174 13.2.3 构建视图控制器界面175 13.2.4 使用视图控制器176 13.3 表视图控制器180 13.3.1 表视图控制器的分析图180 13.3.2 创建表视图控制器180 13.3.3 构建表界面181 13.3.4 使用表视图控制器185 13.4 小结186 第14章 监控事件和动作187 14.1 事件简介187 14.1.1 响应者链187 14.1.2 触摸和事件188 14.2 触摸的例子:事件报告程序190 14.2.1 在interface builder中构建应用程序191 14.2.2 为触摸准备视图192 14.2.3 控制事件193 14.3 其他事件功能195 14.3.1 规则化事件195 14.3.2 其他事件方法和属性196 14.4 动作简介196 14.4.1 uicontrol对象196 14.4.2 控件事件和动作197 14.4.3 addtarget:action:forcontrolevents:方法198 14.5 向应用程序添加按钮199 14.5.1 使用addtarget:action:forcontrolevents:199 14.5.2 使用ibaction200 14.6 其他动作功能201 14.6.1 uitextfield201 14.6.2 uislider203 14.6.3 textfield/slider组合203 14.6.4 创建动作很容易204 14.6.5 使用动作204 14.7 通知简介204 14.8 小结205 第15章 创建高级视图控制器206 15.1 选项卡栏视图控制器206 15.1.1 选项卡栏控制器分析206 15.1.2 创建选项卡栏控制器207 15.1.3 构建选项卡栏界面209 15.1.4 使用选项卡栏控制器211 15.2 导航控制器212 15.2.1 导航控制器分析212 15.2.2 创建导航控制器213 15.2.3 构建导航控制器214 15.2.4 使用导航控制器217 15.3 使用翻转控制器218 15.4 模式视图控制器220 15.5 小结221 第四部分 使用sdk工具编程 第16章 处理数据224 16.1 接收用户动作224 16.2 管理用户首选项225 16.2.1 创建自己的首选项226 16.2.2 使用系统设置230 16.3 打开文件234 16.3.1 访问软件235 16.3.2 访问其他目录235 16.3.3 操纵文件236 16.3.4 filesaver:一个uitextview示例237 16.4 使用sqlite239 16.4.1 设置sqlite数据库239 16.4.2 访问sqlite240 16.4.3 访问sqlite数据库241 16.4.4 通过数据库构建导航菜单241 16.4.5 本例的扩展247 16.5 访问地址簿247 16.5.1 框架概述248 16.5.2 访问地址簿属性248 16.5.3 查询地址簿249 16.5.4 使用地址簿ui251 16.6 小结255 第17章 定位:加速计和位置256 17.1 加速计和方向256 17.1.1 orientation属性256 17.1.2 方向通知257 17.2 加速计和移动257 17.2.1 访问uiaccelerometer258 17.2.2 解析uiacceleration258 17.2.3 查看重力259 17.2.4 查看移动260 17.2.5 识别简单的加速计移动261 17.3 加速计和手势263 17.4 关于core location265 17.4.1 位置类265 17.4.2 使用位置和距离的示例266 17.4.3 使用海拔的示例268 17.4.4 core location和互联网270 17.5 小结271 第18章 媒体:图像和声音272 18.1 图像介绍272 18.1.1 加载uiimage272 18.1.2 绘制uiimageview273 18.1.3 在uikit中修改图像274 18.2 利用core graphics绘制简单图像275 18.3 访问照片276 18.3.1 使用图像选取器276 18.3.2 拍照276 18.3.3 保存到相册277 18.4 拼合:一个图像例子277 18.4.1 拼合视图控制器278 18.4.2 拼合临时图像视图281 18.4.3 拼合视图282 18.4.4 扩展这个例子283 18.5 使用media player框架283 18.5.1 媒体播放器类283 18.5.2 音量视图285 18.5.3 更好地集成媒体播放器286 18.6 手动播放声音286 18.6.1 播放简单声音287 18.6.2 振动iphone288 18.6.3 播放复杂的声音288 18.6.4 其他音频框架290 18.7 小结290 第19章 绘制图形291 19.1 quartz 2d简介291 19.2 quartz上下文292 19.2.1 在uiview上绘制图形293 19.2.2 在位图上绘制图形294 19.3 绘制路径295 19.3.1 结束路径296 19.3.2 创建可重用路径296 19.3.3 绘制矩形297 19.4 设置图形状态298 19.4.1 设置颜色298 19.4.2 变换299 19.4.3 设置裁剪路径301 19.4.4 其他设置302 19.4.5 管理状态302 19.5 quartz中的高级绘图功能302 19.5.1 绘制渐变303 19.5.2 绘制图像304 19.5.3 绘制文字305 19.5.4 未介绍的内容306 19.6 示例:在图片上绘图306 19.6.1 photodraw视图控制器307 19.6.2 photodraw视图308 19.6.3 扩展示例311 19.7 core animation简介311 19.7.1 core animation基础312 19.7.2 core animation入门313 19.7.3 绘制简单的隐式动画313 19.7.4 绘制简单的显式动画313 19.8 opengl简介314 19.9 小结315 第20章 web:web视图和因特网协议316 20.1 因特网的层次结构316 20.2 低层次联网316 20.3 使用url318 20.3.1 创建nsurl318 20.3.2 构建nsurlrequest319 20.3.3 手动操作html数据320 20.4 使用uiwebview320 20.4.1 调用web视图320 20.4.2 管理web视图委托321 20.4.3 缩略图:一个web视图例子322 20.4.4 google maps:一个core location示例324 20.5 解析xml325 20.5.1 启动nsxmlparser326 20.5.2 充当委托326 20.5.3 构建示例rss阅读器:一个xml示例327 20.5.4 海拔高度重读:一个core location示例332 20.6 提交给web334 20.6.1 手动提交334 20.6.2 提交表单335 20.7 访问社会网络336 20.7.1 使用web协议336 20.7.2 使用touchjson337 20.8 小结338 附录a iphone os类参考339 附录b 外部资源和参考资料342 附录c 发布你的sdk程序...344

5,006

社区成员

发帖
与我相关
我的任务
社区描述
解读Web 标准、分析和讨论实际问题、推动网络标准化发展和跨浏览器开发进程,解决各种兼容性问题。
社区管理员
  • 跨浏览器开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧