如何从 Web 脚本调用本地外围设备
Posted
技术标签:
【中文标题】如何从 Web 脚本调用本地外围设备【英文标题】:How to invoke local peripheral device from web script 【发布时间】:2011-09-22 10:05:53 【问题描述】:我对从网站调用本地应用程序感到困惑。 有没有办法从网络脚本启动 ipad/iphone 应用程序?我记得有带有 IE 的 ActiveX 可以启动本地设备,例如相机或打印机。 javascript 可以调用 ActiveX。但是ios中没有activeX。这是我的问题:如何从网页启动本地设备?有没有人有同样的问题?我有一种方法,但不知道是否可行:
-
UIWebView 可以通过 stringByEvaluatingJavaScriptFromString 执行 JavaScript。
用JavaScript在页面中编写一个函数,响应页面上的事件(按钮点击等),然后改变状态。
启动线程查询状态。当状态改变时,调用本地应用。
这是可能的还是更好的方法?
【问题讨论】:
【参考方案1】:如果您希望通过 iPad 从 Safari 浏览器打开您的应用程序,那么有一种方法可以做到这一点。在应用的 info.plist 文件中添加以下标签:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>com.companyname.appname</string>
<key>CFBundleURLSchemes</key>
<array>
<string>openApp</string>
</array>
</dict>
</array>
保存 plist 文件,当用户单击所需按钮时,现在在网页上放置 openApp://
代替链接。如果您尝试在自己的应用程序中的 Web 视图中实现它,这将无济于事。但它适用于 iPad 或任何其他应用程序的 Safari 浏览器。
我希望这会有所帮助。
【讨论】:
谢谢,它确实有效。但是,我仍然想在 UIWebView 中实现这一点。有什么办法吗? 是的,您也可以从 Web 视图中执行此操作。但是您不能从 App A 的 webview 调用 App A,因为这没有任何意义。您将只能从 App A 的 webview 调用另一个应用程序。因此,最好将网络链接从您的应用重定向到 safari,然后使用上述方法再次返回您的应用。以上是关于如何从 Web 脚本调用本地外围设备的主要内容,如果未能解决你的问题,请参考以下文章
Web系统中如何操作外部设备,比如POS机、IC卡读卡器等 - PHP进阶讨论
如何将图像从本地同步到 Web 服务器?所以我可以在设备上看到它们