2016-05-12 74 views
3

我有一个webapp,其中有一个移动版本可供人们在safari浏览器上访问。有没有办法从用户操作(按钮点击)上的代码中调用任何安装的条形码扫描器,以便条形码扫描器可以被称为扫描条形码,然后将扫描值返回到我的网页上的输入或至少保留剪贴板中的值,以便可以将相同内容粘贴到网页上的输入中。 必须在iPad上的Safari浏览器上工作!从非本地jquery webapp调用条形码扫描器iOS

+0

你可以提供一些你试过的东西的更多信息吗? http://stackoverflow.com/questions/6336641/html5-camera-access-through-browser-in-ios似乎建议你可以捕捉图像。您是否打开上传到条形码服务,如https://webqr.com/index.html –

+0

@RoyFalk我希望没有照片捕获。它必须是无缝的照片解码。我仍然在分析阶段,在提交给客户端之前 –

回答

1

AFAIK Apple在Safari中不能读取条码。显然,您可以访问摄像头以捕获图像或视频,因此您可以基于此来拼凑解决方案。

Capture the image有:

<input id="imageinput" type="file" accept="image/*"> 

然后我猜你可以使用FileReader访问JS的图像数据。

然后你会通过JS条码扫描库运行图像来解码条码。

最后你会将解码后的值插入到你的页面上。

+0

意思是客户想要的东西不能完成..我需要至少去混合应用程序。? –

+0

不要这样说,“苹果公司不会在网络应用程序中提供这种功能”。是的,你需要去混合或本地。 –

+0

他们直接从Web应用程序中获取它。一直在寻找职位数天以找到答案。当我不能在这里发布:) –

-1

您可以使用以下链接:

http://www.appcoda.com/qr-code-ios-programming-tutorial/

刚刚从AVMetadataObjectTypeQRCode设置MetadataObjectType到AVMetadataObjectTypeCode128Code。

在 - (BOOL)startReading方法

取代

[captureMetadataOutput setMetadataObjectTypes:[NSArray arrayWithObject:AVMetadataObjectTypeQRCode]]; 

[captureMetadataOutput setMetadataObjectTypes:[NSArray arrayWithObject:AVMetadataObjectTypeCode128Code]]; 

另外,在

- (无效)captureOutput:(AVCapt ureOutput *)captureOutput didOutputMetadataObjects:(NSArray的*)metadataObjects fromConnection:(AVCaptureConnection *)连接方法

更换

if ([[metaDataObj type] isEqualToString:AVMetadataObjectTypeQRCode]) 

if ([[metaDataObj type] isEqualToString:AVMetadataObjectTypeCode128Code]) 

我想这应该工作。

+0

不能使用xcode。需要通过javascript或jQuery –

1

如果条形码应用程序启用了url-scheme,您可以通过打开它指定的链接来打开它,但这不太可靠,因为它需要用户安装特定的应用程序。

相反,你可以做的是使用一些JavaScript条码扫描仪库像quaggaJS。 https://serratus.github.io/quaggaJS/

+0

Safari会允许摄像头访问?或将来自safari的js允许应用程序回调并重新导向而不刷新?请记住,我们没有自己的条形码扫描器应用程序 –

+0

他们似乎也支持Safari浏览器的静态图像,至少https://serratus.github.io/quaggaJS/#browser-support – Miro

+0

Miro,我需要访问相机,并且不是静态图像。 –

2

在Safari 11及更高版本上,您可以使用像Scandit SDK这样的库。

npmjs。com/package/scandit-sdk

+0

请添加您的解决方案的主要观点,而不是只有一个简单的链接。 – pirho

+0

这个答案是正确的。 Scandit现在可以进行网络扫描。我在iOS上测试过它,它可以工作(尽管加载速度比原生应用要慢)。你必须付出代价,而且价格很高。请参阅:https://www.scandit.com/scandit-launches-barcode-scanner-sdk-for-web-brings-scanning-to-the-browser/ –