在 Sencha 框架内使用外部 javascript 文件添加二维码
Add QR code using external javascript file within Sencha framework
我们正在尝试向旧系统添加功能。我们的客户使用扫描仪,所以如果我们可以在屏幕上添加二维码供他们扫描,那将是理想的选择。我找到了一个显示 QR 码的小型开源 javascript 库。我想使用它,但我从数据库中提取 URL,将其放入商店,然后在屏幕上填充 link。所以,我有以下内容:
this.searchForm = {
frame: true,
xtype: 'form',
layout: 'form',
labelWidth: 150,
items: [{
xtype: 'component',
fieldLabel: 'Wireless App',
tpl: '<div id="qrcode" style="width:100px; height:100px;"></div><a href="{Url}">{Url}</a>',
data: { Url: '' },
ref: '../../WirelessAppLabel'
}, {
xtype: 'label',
ref:'../../StatusLabel'
}]
};
lookupRF: function(search) {
this.createRFLookup();
this.lookupRFWindow.show();
this.WirelessAppStore = WirelessAppUrl.getInstance().createStore();
PM.Retriever.retrieve([this.WirelessAppStore], {
callback: function (response, success) {
if (success) {
this.WMSAppUrl = this.WirelessAppStore.data.items[0].data.Url;
this.lookupRFWindow.WirelessAppLabel.update({ Url: this.WMSAppUrl });
new QRCode(document.getElementById("qrcode"), this.WMSAppUrl);
}
},
scope: this
});
}
其中 PM 是我们内部创建的命名空间。 (这两个函数不在同一个文件中,但一个引用另一个)。但是,我不断收到错误消息,说 QRCode 未定义。我尝试使用 Ext.Loader.load() 加载它,并且还只是在 index.html 中添加对脚本的引用,但是这两个选项都不起作用。有什么建议吗?
这是我们尝试使用的 QR 码 javascript 的 link:https://davidshimjs.github.io/qrcodejs/
我找到了一种更简单的方法。与其尝试在 Javascript 中做所有事情,它已经在攻击服务器以从数据库中提取数据,因此我添加了一个 QR 码生成器,它创建了一个位图服务器端,将其转换为 Base64String。所以,现在我的代码如下所示:
this.searchForm = {
frame: true,
xtype: 'form',
layout: 'form',
labelWidth: 150,
items: [{
xtype: 'component',
fieldLabel: 'Wireless App',
tpl: '<a href="{Url}">{Url}</a><br/><img src="data:image/jpeg;base64, {Image}" style="width:100px;height:100px;" />',
data: {
Url: '',
Image: ''
},
ref: '../../WirelessAppLabel'
}, {
xtype: 'label',
ref:'../../StatusLabel'
}]
};
lookupRF: function(search) {
this.createRFLookup();
this.lookupRFWindow.show();
this.WirelessAppStore = WirelessAppUrl.getInstance().createStore();
PM.Retriever.retrieve([this.WirelessAppStore], {
callback: function (response, success) {
if (success) {
this.WMSAppUrl = this.WirelessAppStore.data.items[0].data.Url;
this.WMSAppImage = this.WirelessAppStore.data.items[0].data.QRCode;
this.lookupRFWindow.WirelessAppLabel.update({
Url: this.WMSAppUrl,
Image: this.WMSAppImage
});
}
},
scope: this
});
然后为了实际创建 QRCode,我使用了这个开源包:https://github.com/codebude/QRCoder
不完全是所要求的解决方案,但效果非常好。
我们正在尝试向旧系统添加功能。我们的客户使用扫描仪,所以如果我们可以在屏幕上添加二维码供他们扫描,那将是理想的选择。我找到了一个显示 QR 码的小型开源 javascript 库。我想使用它,但我从数据库中提取 URL,将其放入商店,然后在屏幕上填充 link。所以,我有以下内容:
this.searchForm = {
frame: true,
xtype: 'form',
layout: 'form',
labelWidth: 150,
items: [{
xtype: 'component',
fieldLabel: 'Wireless App',
tpl: '<div id="qrcode" style="width:100px; height:100px;"></div><a href="{Url}">{Url}</a>',
data: { Url: '' },
ref: '../../WirelessAppLabel'
}, {
xtype: 'label',
ref:'../../StatusLabel'
}]
};
lookupRF: function(search) {
this.createRFLookup();
this.lookupRFWindow.show();
this.WirelessAppStore = WirelessAppUrl.getInstance().createStore();
PM.Retriever.retrieve([this.WirelessAppStore], {
callback: function (response, success) {
if (success) {
this.WMSAppUrl = this.WirelessAppStore.data.items[0].data.Url;
this.lookupRFWindow.WirelessAppLabel.update({ Url: this.WMSAppUrl });
new QRCode(document.getElementById("qrcode"), this.WMSAppUrl);
}
},
scope: this
});
}
其中 PM 是我们内部创建的命名空间。 (这两个函数不在同一个文件中,但一个引用另一个)。但是,我不断收到错误消息,说 QRCode 未定义。我尝试使用 Ext.Loader.load() 加载它,并且还只是在 index.html 中添加对脚本的引用,但是这两个选项都不起作用。有什么建议吗?
这是我们尝试使用的 QR 码 javascript 的 link:https://davidshimjs.github.io/qrcodejs/
我找到了一种更简单的方法。与其尝试在 Javascript 中做所有事情,它已经在攻击服务器以从数据库中提取数据,因此我添加了一个 QR 码生成器,它创建了一个位图服务器端,将其转换为 Base64String。所以,现在我的代码如下所示:
this.searchForm = {
frame: true,
xtype: 'form',
layout: 'form',
labelWidth: 150,
items: [{
xtype: 'component',
fieldLabel: 'Wireless App',
tpl: '<a href="{Url}">{Url}</a><br/><img src="data:image/jpeg;base64, {Image}" style="width:100px;height:100px;" />',
data: {
Url: '',
Image: ''
},
ref: '../../WirelessAppLabel'
}, {
xtype: 'label',
ref:'../../StatusLabel'
}]
};
lookupRF: function(search) {
this.createRFLookup();
this.lookupRFWindow.show();
this.WirelessAppStore = WirelessAppUrl.getInstance().createStore();
PM.Retriever.retrieve([this.WirelessAppStore], {
callback: function (response, success) {
if (success) {
this.WMSAppUrl = this.WirelessAppStore.data.items[0].data.Url;
this.WMSAppImage = this.WirelessAppStore.data.items[0].data.QRCode;
this.lookupRFWindow.WirelessAppLabel.update({
Url: this.WMSAppUrl,
Image: this.WMSAppImage
});
}
},
scope: this
});
然后为了实际创建 QRCode,我使用了这个开源包:https://github.com/codebude/QRCoder
不完全是所要求的解决方案,但效果非常好。