java.io.IOException: 设备未就绪

现象: FAILURE: Build failed with an exception. * What went wrong: java.io.IOException: 设备未就绪。   FAILURE: Build failed with an exception. * What went wrong: java.io.IOException: The device is not ready 原因:D盘只读导致的(比如D盘是光盘) [...]

微信退款

应用场景 当交易发生之后一段时间内,由于买家或者卖家的原因需要退款时,卖家可以通过退款接口将支付款退还给买家,微信支付将在收到退款请求并且验证成功之后,按照退款规则将支付款按原路退到买家帐号上。 注意: 1、交易时间超过一年的订单无法提交退款; 2、微信支付退款支持单笔交易分多次退款,多次退款需要提交原支付订单的商户订单号和设置不同的退款单号。一笔退款失败后重新提交,要采用原来的退款单号。总退款金额不能超过用户实际支付金额。 1.首先我们需要准备以下参数: // 商户系统内部的退款单号,商户系统内部唯一,同一退款单号多次请求只退一笔 String out_refund_no = "4003832001201605045494929094"; // 商户侧传给微信的订单号 String out_trade_no = "C70E285B10B000011C8312B2D82011F4"; // 总金额 String total_fee = "1"; // 退款金额 String refund_fee = "1"; // 随机字符串 String nonce_str [...]

file插件

本文讲解cordova-plugin-file插件以及如何在Wex5中使用该插件。 目录: 1.插件概述 2.插件使用 <1>配置插件 <2>文件存储位置 <3>系统文件列表 <4>Android注意事项 <5>iOS注意事项 <6>cdvfile协议 <7>错误码 <8>手机应用目录结构 <9>示例代码 1.插件概述 文件管理插件,提供了读写设备文件的API。 2.插件使用 <1>配置插件(可选) 文件系统设置可以配置每个平台,在xml文件中,Android和iOS的平台都识别文件系统安装的标识。默认情况下,可以访问所有的文件根目录,如果我们禁止访问某一目录,可以在下面的配置代码中删除该目录的标识(比如“cache”)。 preference name="iosExtraFilesystems" value="library,library-nosync,documents,documents-nosync,cache,bundle,root" ; preference name="AndroidExtraFilesystems" value="files,files-external,documents,sdcard,cache,cache-external,root" ; <2>文件存储位置 cordova.file.applicationDirectory:只读的应用程序的安装目录。 (iOS,Android,OSX, windows) cordova.file.applicationStorageDirectory:应用程序的根目录的沙盒;在iOS和windows这个位置是只读的(但具体的子目录(iOS上/Documents或windows上/localState)读写)。这其中包含的所有文件都是应用私有的。 (iOS,Android,OSX) cordova.file.dataDirectory:使用内存存储在应用程序的沙箱中,私有的、持久的(在Android上,如果你需要使用外部存储器,用.externalDataDirectory)。在iOS上,该目录是不与iCloud同步的。 [...]

geolocation插件使用方法

目录 1、概述 2、JS调用方法 3、注意事项 概述 geolocation是地理位置插件,提供地理位置信息,依赖百度地图sdk。注意:依赖百度地图SDK是为了改善Android系统定位的能力,IOS开发使用的是原生api定位。 本插件已经填写了百度地图key,开发Android应用可以自行申请key,也可以使用默认的key,而开发IOS应用无需考虑这个问题。 申请的网址为:百度地图api官网。 申请的流程并不复杂,网上也能找到资料。申请百度地图sdk的流程:百度地图api申请流程 JS调用方法 1、导入插件require("cordova!cordova-plugin-geolocation"); 2、插件提供了获取定位信息方法getCurrentPosition getCurrentPosition:获取设置地理位置信息。传递的参数有三个:successCallback(请求成功的回调,返回cordova-plugin-geolocation.Position对象)、errorCallback(可选参数 请求失败的回调,返回cordova-plugin-geolocation.PositionError对象)、options(可选参数,地理位置参数)。返回的数据包括经度和纬度。 js代码 define(function(require){ var $ = require("jquery"); require("cordova!cordova-plugin-geolocation"); var Model = function(){ this.callParent(); }; function success(data){ alert("经度:"+data.coords.longitude +"\n" +"纬度:"+data.coords.latitude +"\n" +"类型:"+data.coorType [...]

报表中显示blobImage上传的图片

通过本案例,我们实现blobImage上传的图片在报表中的显示。 存图片的字段里面的内容是二进制格式的,需要通过写java代码调用blobDownloadAction获得数据库中存储的图片的url,因此reportData不能使用KSQLAction,要使用Action。下面是java代码完整案例。 1.action中代码 import java.math.*; import java.sql.*; import java.util.*; import org.dom4j.*; import com.justep.system.data.*; import com.justep.system.action.ActionUtils; public class OPM { public static Table queryMessage(String concept,String idColumn,String select,String from,String condition,List range,String filter,Boolean distinct,Integer offset,Integer limit,String columns,String [...]

documenthandler插件使用方法

目录 1、概述 2、JS调用方法 3、注意事项 概述 documenthandler插件的功能是下载指定url的文件并使用系统注册过的应用打开。支持Android系统和IOS系统。支持打开的文件类型并不限于常见的文档类型:txt、doc、pdf等。例如在Android系统打开一个apk的链接,会下载该apk并跳转到app安装界面(具体的处理方式与机型相关)。也就是说对打开的文件类型不做限定,只要设备能正确的响应url中包含的文件类型即可。 JS调用方法 1、导入插件require("cordova!ch.ti8m.documenthandler") 2、插件只有一个方法handleDocumentWithURL。需要的参数为成功回调,失败回调和文件的url。 js代码 define(function(require){ var $ = require("jquery"); require("cordova!ch.ti8m.documenthandler"); var Model = function(){ this.callParent(); }; function success(){ alert("成功打开"); } function fail(result){ alert(result); } Model.prototype.openURLClick = function(event){ handleDocumentWithURL(success,fail,"http://192.168.1.104:8080/test.txt"); [...]

statusbar插件使用方法

目录 1、概述 2、JS调用方法 3、注意事项 概述 statusbar插件作用是控制状态栏的显示方式和样式。 JS调用方法 1、导入插件require("cordova!cordova-plugin-statusbar") 2、插件提供了4个方法 show:显示状态栏 hide:隐藏状态栏 backgroundColorByName(""):设置状态栏的背景颜色,双引号内设置颜色,取值范围:black, darkGray, lightGray, white, gray, red, green, blue, cyan, yellow, magenta, orange, purple, brown。注意:Android5.0系统以上支持设置状态栏颜色。 overlaysWebView:设置状态栏是否重叠,在IOS7中,设为false,状态栏的风格接近于IOS6 js代码 define(function(require){ var $ = require("jquery"); require("cordova!cordova-plugin-statusbar"); var [...]

Events事件

一、简介 Cordova提供了一组事件,包括:deviceready,pause,resume,backbutton,volumedownbutton,volumeupbutton。应用可以监听这些事件,在监听中完成对事件的响应。 deviceready:设备就绪事件 pause: APP收纳到后台事件 resume: APP唤起到前台事件 handleOpenURL: 用户通过URL打开X5APP事件。该事件是WeX5增加的。更多详情请移步这艘小船cordova-plugin-customurlscheme。 android还有以下事件 backbutton: 按键返回事件。 volumedownbutton: 增大音量事件。 volumeupbutton: 减小音量事件。 二、对事件的处理。需要设置监听,并关联到相应的事件上。 (1)设置监听函数 Model.prototype.setListeners = function(event) { this.DeviceReadyListener = function() { justep.Util.hint("deviceReady: 设备就绪!"); } this.ResumeListener = function() { setTimeout(function() [...]

spinner插件的使用方法

目录 1、概述 2、JS调用方法 3、注意事项 概述 spinner插件的功能是使应用增加显示spinner和隐藏spinner的能力。spinner一般用于程序加载、跳转等场景,美观得体的spinner会让你的应用有更好的用户体验。 JS调用方法 1、导入插件require("cordova!cordova-plugin-spinner-dialog")。 2、插件提供了show和hide方法,但传入不同的参数能实现不同的效果。 show方法可以传3个参数,或者不传参数。 第一个参数代表标题,第二个参数代表内容,第三个参数代表spinner是否可被取消。 对应的样式如下: show() 没有标题和内容,只有圆圈动画 show(null,"正在加载...",null) spinner的内容为"正在加载...",标题为空。 show("spinner标题","显示5秒后消失",true),true代表不能用back键取消该spinner,取消spinner的方法参考下面贴出的js代码的setTimeout。 show("只有标题的spinner",null,null) 只有标题的spinner show("spinner标题","正在加载...",null) 同时包含标题和内容的spinner js代码 define(function(require){ var $ = require("jquery"); require("cordova!cordova-plugin-spinner-dialog"); var Model = function(){ this.callParent(); }; [...]

voiceManager插件

本文讲解com.justep.cordova.plugin.voiceManager插件以及如何在Wex5中使用该插件 1.插件概述 音频控制插件,通过参数设置可以调节手机音频的播放模式为外放模式/听筒模式。 2.插件使用 首先,我们需要在自己的js文件中引入该插件,即“require(“cordova!com.justep.cordova.plugin.voiceManager”);”然后即可在js中调用相关API。 代码如下: //选择听筒模式 Model.prototype.button1_16Click = function(event){ // alert(voiceManager.Mode.CALL); navigator.voiceManager.setPlayMode(voiceManager.Mode.CALL,success,fail); }; //选择外放模式 Model.prototype.button2_16Click = function(event){ // alert(voiceManager.Mode.NORMAL); navigator.voiceManager.setPlayMode(voiceManager.Mode.NORMAL,success,fail); };