今天晚上想到了一个问题,二维码是静态的,如果扫码之后手机上根本没安装这个应用,scheme完全不可行的情况下如何才能跳转到下载页呢?然而对于Android - Java上层的不是很了解,对于一个一直折腾在Native层的人来说,叫天(Java)天不灵,叫地(Linux)地不应,着实是憋气。
后来想到了一个小方法,二维码里面仍然只有一个网址,但这是一个需要重定向的网址(redirect)。
这个网页上使用XMLHttpRequest对本地端口发起GET请求并注册回调函数检查readyState和status,只有readyState是4的时候判断status,如果为200则表明本地服务器正确应答,否则(一般为0)表明本地服务器未成功应答。
本地服务端使用 C++ 编写,报文与HTTP标准报文差不多,但是需要加一句Access-Control-Allow-Origin: *,其中星号应该换为跨域访问的来源站点。
另一个需要注意的地方是var req=new XMLHttpRequest(); ....... req.send(null) 如果没有这一句服务端不能接收到请求,req将因为超时而失败返回.