我正在使用NFC(近场通信)构建一个简单的web应用程序,其中涉及使用我的网站的URL编程的某些标签+将触发特定JavaScript函数的散列。
例如,"www.website.com/index.html#hide/one"将隐藏网页上标记为"one"的元素。很简单,对吧?我想应该是。
我已经知道,当你点击一个NFC标签,它打开一个新的网页/选项卡的URL。不过,我认为如果我的网页检查是否有其他打开的页面并关闭它们,就可以避免这种情况。
如果有更好的方法(通过URL触发网页上的JavaScript函数到该网页),请让我知道。值得注意的是,游戏/应用总共有8个标签(元素),它们都必须在游戏/应用结束时被触发,这就要求所有标签都在同一个页面上完成,最好不需要刷新(尽管我可能会使用本地存储,以便刷新)。先谢谢你,我只是不知道该怎么做。
-Mitchyl
编辑-我应该提到我已经在使用backbone.js来满足我的路由需求。
您需要的是一个散列标签路由库。http://projects.jga.me/routie/
这将在你的应用页面加载并读取哈希时运行,转移你的代码逻辑去做一些基于哈希标签的事情,这样你就可以在你的代码逻辑中删除页面上的项目。不需要很多页。
但是!
如果设备上的url启动器每次检测到一个项目时都会启动新窗口,这是一个问题,因为你不能关闭这些窗口,除了从窗口本身。
<<p> 解决方案/strong>该应用程序有一个游戏主窗口,每个物品都存储在本地存储中,您可以使用本地存储事件系统来检测是否其他页面更改了物品,并实时更新UI。
addEvent(window, 'storage', function (event) {
if (event.key == 'item1') {
item1.innerHTML = event.newValue;
}
});
当NFC启动一个新窗口时,显示用户反馈,表明他们已经完成了游戏的一个任务,然后使用超时关闭它。
该窗口的下面将是显示更新的主页面窗口。
如果做得好,它会很好地工作。您还可以在任务完成时在弹出窗口上添加一个漂亮的x关闭按钮。