这些天h5需要做一个推广页面,需要客户端将地理位置信息以及用户的一些信息传递给h5页面,一般的话可以通过给h5注入对象,调用方法的方式来实现。但是想想这个页面是需要通过客户端生成二维码,别的用户用微信或者其他的二维码扫描工具扫描之后才出现的,所以不是通过自己客户端的webview来加载的,所以说这种方式不可行,那么就另外一种方式,就是在h5页面地址后面进行拼接,然后让h5取值,就是采用了这个方案。
但是不管是用户的信息还是客户端取到的地理位置信息,都是用户的隐私信息,所以不能直接就通过?以及&的方式明文拼接在后面,要是通过微信扫描打开页面还好,看不到地址,但是如果是在浏览器中打开,那么地址就是一目了然了,那么用户信息岂不就是泄漏了么?所以还是稍微加密下吧,因为不想太麻烦,所以就直接采用Base64进行编码,其实也不属于加密。那么方案有了,接下来就是实施了。
其实之前也用Base64转过字符串,不过那时候是将一张图片通过base64转换为字符串传递给服务端了,以前总是用那个sun.misc.BASE64Decoder.jar了,其实android里面里面已经自带了的base64工具类,所以这次我们用这个方法吧。它有encodeToString方法,如果不需要特殊处理,那么第二个参数直接传递Base64.DEFAULT就好了。我们可以试一下:对字符串String param = “北京市哈哈取某某门门南大街靠近值招商银行(北二环支行)&province=北京市&city=北京市&area=某某区&country=中国&street=哈哈门西大街&aaid=00