一直對web的開發很有興趣,可惜沒有真正參與過任何有趣的專案,不過寫手機APP常常會需要用些web的方法,剛好可以補充一下web的知識!
今天上班聽到老闆叫我寫一個QR code的產生器,當下第一個反應~GG!沒碰過,還好老闆接下來說,你可以使用Google API來產生!X!估狗也太屌惹吧,怎麼能夠想到這麼方便的事,索性搜尋了一下,天啊!也太簡單使用了,所以決定要在網誌上記下來,日後方便查閱!!
首先共有五個的參數(參考官網:QR code API),不過最後一個參數根據官網的資訊,好像跟QR code本身encode的方式有關,不是很懂,好在該參數不一定要設定,所以就都先用default吧!
1. 格式如下:
https://chart.googleapis.com/chart?cht=qr&chs=width x height&chl=data&choe=output_encoding
2. 簡單的example:
http://chart.apis.google.com/chart?cht=qr&chs=360x360&chl="Hello Wold"
上面的網址就可以產生一個簡單的Hello World QR code!!
3. 如果data為URL且帶兩個以上的參數,直覺上會使用
http://chart.apis.google.com/chart?cht=qr&chs=360x360&chl=http://www.leaderg.com/mysng/live?s=ker&p=ker
但是上面的網址會造成只吃到第一個參數,無法吃到第二個參數,怎辦,好在Google大神又解救我一次,只要去查"&"的Unicode table,可以知道&的Unicode unmber為26所以將上面的網址改成
http://chart.apis.google.com/chart?cht=qr&chs=360x360&chl=http://www.leaderg.com/mysng/live?s=ker%26p=ker
就可以帶兩個以上的參數惹!
4. 身為專業的APP開發者,最後放上Objective C使用Google API的template:(OSX版本)
- (IBAction)QRCodeAction:(id)sender { NSLog(@"robot sn = %@",[[NSUserDefaults standardUserDefaults] objectForKey:@"robotSn"]); NSMutableString *QRCodeUrl = [NSMutableString stringWithFormat:@"http://chart.apis.google.com/chart?cht=qr&chs=360x360"]; [QRCodeUrl appendFormat:@"&chl=http://www.leaderg.com/mysng/live"]; NSMutableString *parameter = [NSMutableString stringWithFormat:@"?s=%@",[[NSUserDefaults standardUserDefaults] objectForKey:@"robotSn"]]; [parameter appendString:@"%26"]; [parameter appendFormat:@"p=%@",[[NSUserDefaults standardUserDefaults] objectForKey:@"share"]]; [QRCodeUrl appendString:parameter]; [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:QRCodeUrl]]; }
Reference:
沒有留言:
張貼留言