public override void GenerateQRCode(MediaQRContent content)
{
SystemLogger.Log (SystemLogger.Module.PLATFORM, "1");
try{
MediaMetadata mediaData = new MediaMetadata();
SystemLogger.Log (SystemLogger.Module.PLATFORM, "2");
int size = content.Size;
if (size == 0) {
size = 256;
}
var writer = new ZXing.BarcodeWriter
{
Format = BarcodeFormat.QR_CODE,
Options = new EncodingOptions { Height = size, Width = size }
};
//var img = writer.Write(content.Text);
SystemLogger.Log (SystemLogger.Module.PLATFORM, "3");
var uuid = Guid.NewGuid ();
string s = uuid.ToString ();
String filename = "QR_" + s;
NSError err;
DirectoryData dest = new DirectoryData(DEFAULT_ROOT_PATH);
string path = Path.Combine(dest.FullName, filename+".png");
SystemLogger.Log (SystemLogger.Module.PLATFORM, "4");
content = encodeQRCodeContents(content);
using(UIImage img = writer.Write(content.Text)) {
using (var data = img.AsPNG ()) {
data.Save (path, true, out err);
}
}
SystemLogger.Log (SystemLogger.Module.PLATFORM, "5");
mediaData.ReferenceUrl = filename+".png";
mediaData.Title = filename;
SystemLogger.Log (SystemLogger.Module.PLATFORM, "6");
UIApplication.SharedApplication.InvokeOnMainThread (delegate {
UIViewController viewController = UIApplication.SharedApplication.KeyWindow.RootViewController;
FireUnityJavascriptEvent(viewController, "Appverse.Scanner.onGeneratedQR", mediaData);
});
}catch(Exception ex)
{
SystemLogger.Log (SystemLogger.Module.PLATFORM, "GenerateQRCode - exception: " + ex.Message);
}
}