将签名图片保存到Android上的Rhodes文件中

Vik*_*kas 47 storage android image rhodes

我正在尝试使用针对Android选项卡的Rhodes实现签名捕获.我已经设法得到画布并随意涂鸦.但我无法将签名保存在所需位置.在signature_uri采用默认位置为db/db-files/Image-XXXXXX.png.

这是示例中的代码:

def signature_callback
if @params['status'] == 'ok'
  #create signature record in the DB
  signature = SignatureUtil.new({'signature_uri'=>@params['signature_uri']})
  signature.save
  puts "new Signature object: " + signature.inspect
end
Run Code Online (Sandbox Code Playgroud)

在控制台我得到:

APP| RHO serve: /app/Settings/signature_callback
I/APP     (  801): I 01/26/2012 11:36:20:236 0000032e                  APP| Params: {"status"=>"ok", "signature_uri"=>"db/db-files/Image_20120126113618375.png", "rho_callback"=>"1"}
I/APP     (  801): I 01/26/2012 11:36:20:238 0000032e                  APP| *******************ok****************
I/APP     (  801): I 01/26/2012 11:36:20:238 0000032e                  APP| %%%%%%%%%%%%%%%%%db/db-files/Image_20120126113618375.png%%%%%%%%%%%
I/APP     (  801): I 01/26/2012 11:36:20:239 0000032e                  APP| App error: can't convert Symbol into Integer
I/APP     (  801):  lib/rhom/rhom_object_factory.rb:67:in `[]'
I/APP     (  801): lib/rhom/rhom_object_factory.rb:67:in `initialize'
I/APP     (  801): apps/app/Settings/controller.rb:34:in `new'
I/APP     (  801): apps/app/Settings/controller.rb:34:in `signature_callback'
I/APP     (  801): lib/rho/rhocontroller.rb:91:in `serve'
I/APP     (  801): lib/rho/rhoapplication.rb:209:in `serve'
I/APP     (  801): lib/rho/rho.rb:822:in `serve'
I/APP     (  801): E 01/26/2012 11:36:20:248 00000321                  Net| Request failed. HTTP Code: 500 returned. HTTP Response:         <html>
I/APP     (  801):             <head>
I/APP     (  801):                 <meta name="viewport" content="width=320"/>
I/APP     (  801):             </head>
I/APP     (  801):             <body>
I/APP     (  801):                 <h2>Server Error</h2>
I/APP     (  801):                 <p>
I/APP     (  801): Error: can't convert Symbol into Integer<br/>Trace: <br/
Run Code Online (Sandbox Code Playgroud)

现在,我想将它保存在所需的位置,而不是这个数据库存储.请分享您的观点.

cor*_*usk 1

您查看过此页面吗:http://docs.rhomobile.com/rhodes/device-caps#file-system-access?在我看来,您需要将图像保存到数据库并使用 Rho::RhoApplication::get_blob_path(image.image_uri) 方法打开文件。然后,您应该能够使用文件系统 API 创建一个新文件,并将图像的内容写入您选择的任何位置。