cordova插件之org.apache.cordova.inappbrowser

本文不介绍该插件的使用org.apache.cordova.inappbrowser,可以自行参考官方文档http://plugins.cordova.io/#/package/org.apache.cordova.inappbrowser。

本文介绍自己的特殊应用

需求:

1、开发环境:sencha touch

要求在web app中能够呈现复杂格式的工程报表,例如如下:

2、要求能够自由缩放先写报表(双击实现放大缩小)

3、填写完成的数据要进入sqlite

解决思路:

1、采用cordova插件"org.apache.cordova.inappbrowser",地址:http://plugins.cordova.io/#/package/org.apache.cordova.inappbrowser

2、在sencha的panel中打开一个新的浏览器,在新浏览器中加载报表文件(html格式的)

3、在panel中监听loadstop事件(插件提供的监听浏览器加载完成的事件)

4、填写报表,将报表数据返回给父窗口。

问题出在如何将浏览器上填写的报表数据返回给父窗口,采用过一下思路:

cookie:排除,因为,存量有限,我的信息量很大。

sessionStorage:排除,webapp不同于pc,不能共享

localStorage:排除,webapp不同于pc,出现问题,未能排除

最后采用如下思路解决:

填写完成后,必须刷新子窗口才能再次激活父窗口监听的loadstop事件,故子窗口填写完后,采用data:uri这种技术刷新当前浏览器,并将填写的值带入刷新的页面。

代码如下:

sencha panel部分:

app/view/Main.js:

report.htm页面关键代码:

注意事项:

1、report.htm属于自己的资源文件,对sencha而言需要单独添加到app.json配置文件中

/**

* Extra resources to be copied along when build

*/

"resources": [

"resources/images",

"resources/icons",

"resources/startup",

"report.htm",

"result.htm"

],

2、data:uri的中文乱码问题:

Data URI scheme是在RFC2397中定义的,目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入.

目前,Data URI scheme支持的类型有:

data:,文本数据

data:text/plain,文本数据

data:text/html,HTML代码

data:text/html;base64,base64编码的HTML代码

data:text/css,CSS代码

data:text/css;base64,base64编码的CSS代码

data:text/javascript,Javascript代码

data:text/javascript;base64,base64编码的Javascript代码

data:image/gif;base64,base64编码的gif图片数据

data:image/png;base64,base64编码的png图片数据

data:image/jpeg;base64,base64编码的jpeg图片数据

data:image/x-icon;base64,base64编码的icon图片数据

网上有很多关键data uri schema的基础知识,自行查阅。

______________________________________________________

中文乱码处理看下面()

在RFC中,完整的语法定义如下。

dataurl := “data:” [ mediatype ] [ ";base64" ] “,” data

mediatype := [ type "/" subtype ] *( “;” parameter )

data := *urlchar

parameter := attribute “=” value

urlchar指的就是一般url中允许的字符,有些字符需要转义,

parameter可以对mediatype进行属性的扩展,常见的是charset,用来定义编码格式,在多语言情况下需要用到。

例如下面的例子。

data:text/plain;charset=UTF-8;base64,5L2g5aW977yM5Lit5paH77yB

这个例子会显示出”你好,中文!”。如果吧charset部分去掉,就会显示乱码。

代码下载地址:http://download.csdn.net/download/jiangtongcn/8501165

时间: 2024-10-01 03:11:16

cordova插件之org.apache.cordova.inappbrowser的相关文章

Apache Cordova介绍

Apache Cordova是一套设备API,允许移动应用的开发者使用JavaScript来访问本地设备的功能,比如摄像头.加速计.它可以与UI框架(如 jQuery Mobile或Dojo Mobile或Sencha Touch)等相结合使用,这些UI框架可以使用HTML.CSS和JavaScript开发智能手机应用. 在使用Cordova API时,应用程序的构建可以无需本地代码(如Java或对象C等),使用的是Web技术.由于这些JavaScript API在多个设备平台上是一致的,而且是

【No.4 Ionic】修改 cordova 插件

在使用 cordova 过程 使用的插件 有可能不能满足个人需求,就需要修改,下面就直接说说步骤 插件结构 我用 cordova-plugin-inappbrowser 插件 讲解 在目录中有个 src目录,然后 有android  和 ios 目录,直接按需修改就行了 . |-- CONTRIBUTING.md |-- LICENSE |-- NOTICE |-- package.json |-- plugin.xml |-- README.md |-- RELEASENOTES.md |--

AngularJS Cordova插件介绍

ngCordova是在Cordova Api基础上封装的一系列开源的AngularJs服务和扩展,让开发者可以方便的在HybridApp开发中调用设备能力,即可以在AngularJs代码中访问设备能力Api. 根据我的经验,在cordova插件的sucess和error js回调方法中,是无法使用 angularjs的$scope对象和注入的方法的,只能访问全局的方法和变量,这样会导致很多麻烦,必须使用传统的js方法写很多难看的代码.使用ngCordova应该可以解决这个问题. 目前ngCord

使用Ionic + Apache Cordova开发跨平台混合型的移动应用

JavaScript 写多了,要想真正提高js水平,研究其他js框架源码是不错的选择.Github上大部分都是js.css相关的项目,可以有目的性的 check out 下来,研读研读,还是非常收益的,跟随nb的人,也会慢慢变的nb. 场景:有一个朋友,他公司是做移动应用开发的,3个安卓开发人员,3个 ios,然后是 java 开发,美工 ,10多个人的公司,主要是以接项目为主,一个项目(电商.微信.聊天 类型的)大概在20万左右, 差不多1个半月 做完(代码质量能不能保证,不知道,不过我觉得开

Visual Studio的 Apache Cordova 插件CTP3.0发布!

北京时间12号晚23点开始的Connect()活动上,微软发布了一系列激动人心的消息! .NET开源了!以后.NET将可在Linux和Mac OS平台上运行! VS免费了!!如果你是学生,个人开发者,初创企业,那么你将可以使用Visual Studio Community 2013!免费! Visual Studio 2015集成了 Clang 和 LLVM,这意味着什么,意味你可以在VS里头编译iOS程序了! Visual Studio 2015还自带了Android模拟器!可以告别那个渣爆了

理清cordova插件的调用流程

从调用的角度看流程  前端调用(clobbers)-->cordova_plugins.js(clobbers对应插件id和插件文件所在的路径)-–>js部分(配置着插件的名字,已经插件里面都有的方法)-->config.xml(根据插件的名字找到对应的插件原生文件的包名)-->原生(根据匹配到的方法名,来调用原生方法,另外也可以获取到js传递下来的参数) 简单说:前端调用-->桥梁:(cordova_plugin.js clobbers)-->js文件-->桥梁

如何给Ionic写一个cordova插件

写一个cordova插件 之前由javaWeb转html5开发,由于面临新技术,遂在适应的过程中极为挣扎,不过还好~,这个过程也极为短暂:现如今面临一些较为复杂的需求还会有一丝丝头痛,却没有一开始那么强烈了... 在正式写下文之前,我先感谢公司大boss:王总,感谢他让我进入了一个有挑战性的技术公司 并在这个过程中一直鼓励我不断汲取新技术,同时也指正了我在开发中的一些不太好的习惯,十分感谢! 再~,感谢在开发中给予我太多帮助的杜勇以及孙金~,不论是需求讨论还是具体开发阶段都会给予一些十分有用的思

Visual Studio 2015 和 Apache Cordova 跨平台开发入门(一)

基于 Windows 10 的 Visual Studio 2015 跨平台的应用开发主要分为基于Visual Studio 安装 Xamarin 扩展的跨Android.iOS 和 Windows的应用开发,基于Apache Cordova 的 Visual Studio 工具开发跨Windows.Android 和 iOS 设备的应用,基于Visual C++ 创建跨 Android 和 Windows 的应用,以及Visual Studio tools for Unity 创建跨 Andr

vs2015使用Apache Cordova用JavaScript来访问本地设备的功能,比如摄像头、加速计

看到下面这张图就代表着我VS2015 跨平台Moblie开发工具安装成功了. 上周安装成功后本想一睹跨平台开发的乐趣,可是一直找不到合适的入口.这周又来捯饬一下结果发现了一个入口.于是来写一个Hello World和大家分享一下.我们先来了解一下主角吧,那就是Apache Cordova. Apache Cordova是一套设备API,允许移动应用的开发者使用JavaScript来访问本地设备的功能,比如摄像头.加速计.它可以与UI框架(如jQuery Mobile或Dojo Mobile或Se