I am trying to implement signature capture using Rhodes targeting an Android tab. I have managed to get the canvas and scribble on it. But am unable to save the signature at a desired location. The signature_uri
takes the default location as db/db-files/Image-XXXXXX.png
.
This was the code in the sample example:
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
In the console I got:
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/
Now instead of this database storage, I want to save it in a desired location. Please share your views.
have you checked out this page: http://docs.rhomobile.com/rhodes/device-caps#file-system-access ? It looks to me like you need to save the image to the DB and use the Rho::RhoApplication::get_blob_path(image.image_uri) method to open the file. Then you should be able to use the file system API to create a new file and write the contents of the image to it wherever you choose.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With