最近把之前做的联通沃充值项目又看了一遍,总结一下。

   在WebView中,点击通过沃支付,充值。此时,就是平台的网页,调用Android的JS接口,这里需要加上

browser.addJavascriptInterface(new MyJavaScriptInterface(), "MyJS");

还要设置 settings.setJavaScriptEnabled(true); 这样就可以让用户在WebView中一点击按钮或者触发其他方法,平台可以调用Android上的方法。原来,这也就是所谓的“JS回调Android”代码。js回调android的代码,获取终端的一些信息,和apk中的一下信息,比如IMEI,MAC地址等,来区分终端。

    之后,不管联通充值成功或者失败,都向平台发请求,为了安全,外边套了一个Timer定时器,不断地发请求。如果联通充值成功时,拼写正确并发送URL地址给平台,然后通过InputStream存到本地的SDCard中,以XML的形式存储。然后,通过XML解析出平台给终端的返回value,如果成功把Timer停掉,否则不处理,系统会继续Timer。如果联通充值失败时,同样的方式最后解析出XML中的value,如果失败的返回码不是200(成功的值),则把Timer给停掉,因为此时平台上的数据库的记录就是失败的值。