我们是做共享电单车的,友商最近推出了手机碰一碰NFC自动跳转到App自动开锁的功能,这个对于用户体验是有提升的,所以研究了一下。

友商的逻辑是这样的

  • 如果手机没有安装该App,那么触碰NFC后

    • Android自动跳转到应用市场
    • IOS没有反应
  • 如果手机安装了该App,那么触碰NFC后
    • Android自动跳转到App,并识别到NFC中的车辆编号信息,进入开锁页面
    • IOS会弹出一个通知框,点击这个通知框后,跳转到App,并识别到NFC中的车辆编号信息,进入开锁页面

这里的难点在于如何让Android和IOS都能识别并跳转到App,且Android实现没有装App的时候,自动跳转到应用市场的功能。

百思不解之际,想到了可以去读取下友商的NFC卡的信息,看一下他们的格式是怎样的。

这里用到了 TagInfo 和 TagWriter 这两个App,分别可以往NFC卡中读信息和写信息
TagInfo官网
NFC TagInfo App下载地址 (从NFC卡中读数据)
NFC TagWriter App 下载地址 (往NFC卡中写数据)

然后,我们通过TagInfo读取到了NFC卡中的信息如下

某团





某桔




可以看到他们的共同点在于NDEF部分
他们都有这两块 Record

Record #1:URI record`imeituan://www.meituan.com/bike/nfc?id=8666217607&mac=EE9D359B47BF&t=2Record #2:Android Applicsation recordpackage name : com.sankuai.mertuan

OK,到这里我们应该清楚,手机触碰NFC卡的时候,优先会去读取Record #1的数据,如果Record #1没有被处理,那么就回去读取Record #2

当然,还可以有 Record #3

那么我们只要仿照这种格式,在NFC卡上写入相关的数据,就可以了。

我们下载并安装
NFC TagWriter App 下载地址 (往NFC卡中写数据)

找到一张空白的NFC卡
首先,我们先清除标签
点击清除标签 -> 擦写为出厂设置


擦写完成后,点击写入数据

点击新建标签

首先,先点击启动应用

输入Android App的包名 (触碰NFC卡的时候,根据这个包名来匹配App,然后进行跳转App)

然后,再点击添加更多记录

这里点击链接

输入 mytest://www.test.com/bike/nfc?id=123456,保存并退出

最后,点击写入

根据提示,直至写入成功

写入成功后,我们在用TagInfo来读取NFC卡的信息
可以看到
Record #1mytest://www.test.com?/id=123456
Record #2package name : com.mytest.bike

这样,我们的NFC的数据已经准备好了,接着,我们需要在代码AndroidManifest.xml中,进行配置

<activityandroid:name="com.xxxx.yyyy.NFCActivity"android:launchMode="singleInstance" ><intent-filter><action android:name="android.nfc.action.NDEF_DISCOVERED" /><category android:name="android.intent.category.DEFAULT" /><dataandroid:scheme="mytest"android:host="www.test.com"android:pathPrefix="/bike/nfc" /></intent-filter>
</activity>

有了这个配置后,匹配到对应的NFC卡,就会跳转到该NFCActivity中了,在NFCActivity中,再去读取NFC卡的相关信息,进行业务的处理即可。

对于iOS的,由于我是Android开发,不太清楚iOS代码是如何实现的,iOS的同学可以自行度娘查看下在代码中是如何配置的。

至此,就可以实现文章开头所说的这个功能了

  • 如果手机没有安装该App,那么触碰NFC后

    • Android自动跳转到应用市场
    • IOS没有反应
  • 如果手机安装了该App,那么触碰NFC后
    • Android自动跳转到App
    • IOS会弹出一个通知框,点击这个通知框后,跳转到App

至于进入App后,再去读取NFC相关的信息获取的车辆id,进行开锁,这就是相关业务逻辑了,可以自行进行特定的处理。

AndroidIOS 实现接触NFC自动跳转到App,如果未安装App,则跳转到应用市场相关推荐

  1. 在HTML打开已安装的App,未安装跳转到对应的下载链接

    借鉴  HTML中判断手机是否安装某APP,跳转或下载该应用 function lookApp () {var ua = navigator.userAgentvar isAndroid = /(An ...

  2. Android/IOS 实现接触NFC自动跳转到App,如果未安装App,则跳转到应用市场

    我们是做共享电单车的,友商最近推出了手机碰一碰NFC自动跳转到App自动开锁的功能,这个对于用户体验是有提升的,所以研究了一下. 友商的逻辑是这样的 如果手机没有安装该App,那么触碰NFC后 And ...

  3. 基于H5跳转APP,未安装的话就跳转appstore

    最近公司业务做到推广这块,下发短信H5链接点击有APP跳APP,没有跳应用市场的业务,参考大佬的博客实现 代码如下: toApp() {//微信内置浏览器let ua = navigator.user ...

  4. 页面跳转打开APP,若没有安装则跳转到下载页面

    判断当前手机系统 尝试打开APP链接,手机已安装了APP成功跳转打开APP 手机没有安装APP则跳到应用商城安装页 if (navigator.userAgent.match(/(iPhone|iPo ...

  5. uni安卓实现从一个app(A)带参数跳转到另一个app(B)

    1. 首先配置B款app的Schemes 路径:manifest.json->源码视图->app-plus->distribute "distribute" : ...

  6. 跳一跳python源码_使用Python实现跳一跳自动跳跃功能

    使用Python实现跳一跳自动跳跃功能 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  使用Python实现跳一跳自动跳跃功能.txt ] (友情提示:右键点上行 ...

  7. php写js跳转页面,php实现页面的三种跳转

    php实现页面的三种跳转方法:1.通过header函数实现跳转:2.使用Meta标签实现跳转:3.通过在PHP页面中输出JavaScript跳转代码来实现. 本文操作环境:windows7系统.PHP ...

  8. php 跳转到指定url_PHP想要实现页面跳转功能具体怎么操作?(函数标签示例)...

    php中文网最新课程 每日17点准时技术干货分享 PHP跳转到指定页面的问题通常都会建设网站需求上看到,比如我们需要从一个页面跳转到另一个页面来实现某个功能或者效果.其实在PHP中进行页面跳转是有多种 ...

  9. 微信中扫一扫自动调用手机外部浏览器打开链接下载APP(APK)

    很多朋友问我怎么解决微信内点击链接或扫描二维码可以直接跳出微信在外部浏览器打开网页链接,其实这并不难,只要我们实现微信跳转功能即可.下面给大家介绍这个功能 功能目的 生成微信跳转链接,实现微信内置浏览 ...

最新文章

  1. Linux mysql 5.6: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (usin
  2. hello!everyone.大家好,我是新人
  3. I2C设备驱动编写,struct i2c_device_id,struct i2c_driver,i2c_add_driver,i2c_register_board_info
  4. SQL Server 2012附加数据库报错
  5. 1年内从2000涨到13000的成长经验分享
  6. 如何在Mac上的Pages文稿中设置对开页?
  7. Linux 工程师的 6 类好习惯和 23 个教训
  8. 微信小程序使用腾讯地图
  9. ecshop 源码文件结构说明
  10. MySQL字符串的拼接方法
  11. 256QAM调制映射表
  12. 如何注册google账户呢?
  13. 卫星影像,区划矢量,DEM....教你如何将各种遥感数据收入囊中
  14. JavaEE进阶 - Spring Boot 日志文件 - 细节狂魔
  15. matlab半周期正弦拟合,Matlab:帮助理解正弦曲线拟合
  16. CSS(三):CSS特性与盒子模型
  17. 【机器学习中的矩阵分解】LU分解、QR分解、SVD分解
  18. “永不放弃”成就了再结晶宝石
  19. 15/18位身份证号码验证的正则表达式总结(详细版)
  20. java7u45下载_jdk-7u45-windowi586 32位 求官网

热门文章

  1. 中文***测试专用系统——【MagicBox】
  2. 由ACD Systems开发的看图工具-ACDSee提供下载
  3. 基于stm32单片机的电子称设计
  4. WV.21-大数阶乘算法1-序
  5. 食品检测实验室对环境有哪些要求
  6. PostgreSQL连接到数据库增删改查
  7. 联通和电信的流媒体播放
  8. mmap在嵌入式中的应用
  9. 创建JavaEE项目
  10. CS5213设计电路图|CS5213demo测试版参考电路|HDMI转VGA带音频方案开发设计