|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- (function ($) {
- var Qrcode = function (tempBtn) {
- var _this_ = this;
- var isWeiboWebView = /__weibo__/.test(navigator.userAgent);
- if (isWeiboWebView) {
- if (window.WeiboJSBridge) {
- _this_.bridgeReady(tempBtn);
- } else {
- document.addEventListener('WeiboJSBridgeReady', function () {
- _this_.bridgeReady(tempBtn);
- });
- }
- } else {
- _this_.nativeReady(tempBtn);
- }
- };
- Qrcode.prototype = {
- nativeReady: function (tempBtn) {
- $('[node-type=jsbridge]', tempBtn).on('click', function (e) {
- e.stopPropagation();
- });
- $(tempBtn).bind('click', function (e) {
- $(this).find('input[node-type=jsbridge]').trigger('click');
- });
- $(tempBtn).bind('change', this.getImgFile);
- },
- bridgeReady: function (tempBtn) {
- $(tempBtn).bind('click', this.weiBoBridge);
- },
- weiBoBridge: function () {
- window.WeiboJSBridge.invoke('scanQRCode', null, function (params) {
- //得到扫码的结果
- $('.result-qrcode').append(params.result + '<br/>');
- });
- },
- getImgFile: function () {
- var _this_ = this;
- var inputDom = $(this).find('input[node-type=jsbridge]');
- var imgFile = inputDom[0].files;
- var oFile = imgFile[0];
- var oFReader = new FileReader();
- var rFilter = /^(?:image\/bmp|image\/cis\-cod|image\/gif|image\/ief|image\/jpeg|image\/jpeg|image\/jpeg|image\/pipeg|image\/png|image\/svg\+xml|image\/tiff|image\/x\-cmu\-raster|image\/x\-cmx|image\/x\-icon|image\/x\-portable\-anymap|image\/x\-portable\-bitmap|image\/x\-portable\-graymap|image\/x\-portable\-pixmap|image\/x\-rgb|image\/x\-xbitmap|image\/x\-xpixmap|image\/x\-xwindowdump)$/i;
- if (imgFile.length === 0) {
- return;
- }
- if (!rFilter.test(oFile.type)) {
- alert("选择正确的图片格式!");
- return;
- }
- oFReader.onload = function (oFREvent) {
- qrcode.decode(oFREvent.target.result);
- qrcode.callback = function (data) {
- //得到扫码的结果
- $('.result-qrcode').append(data + '<br/>');
- };
- };
- oFReader.readAsDataURL(oFile);
- },
- destory: function () {
- $(tempBtn).off('click');
- }
- };
- Qrcode.init = function (tempBtn) {
- var _this_ = this;
- tempBtn.each(function () {
- new _this_($(this));
- });
- };
- window.Qrcode = Qrcode;
- })(window.Zepto ? Zepto : jQuery);
|