网页手机号抓取程序(小程序加载网页的代码访问的地址是直接动态传 )
优采云 发布时间: 2022-04-04 22:12网页手机号抓取程序(小程序加载网页的代码访问的地址是直接动态传
)
场景描述:
小程序 webview 加载 abc.html。在html中获取用户信息,为什么要这样做?因为小程序的授权是利用小程序的原生能力开发的,数据存储在小程序中,所以abc页面设计成html写的简单,框架限制较少,但是因为没有账号关系两者之间,数据无法根据用户提供,因此两者之间需要数据共享。
首先webview是如何获取微信小程序缓存的?
这里所说的缓存是localStorage等本地缓存。这是微信小程序里写的
wx.setStorageSync("userinfo","myinfo")
这是网页上写的
localStorage.setItem("userinfo","myinfo");
那么我们能否实现它们之间的数据互操作呢?
无论如何,我没有找到API。在Android开发中,webview可以自己控制。可以通过js调用java代码,也可以通过java调用js代码实现参数传递,但是我在微信小程序中没有找到相关接口,所以根据我个人掌握的资料,这条路不通,那里有知道的朋友在评论区,不胜感激。
既然这条路行不通,那我们如何实现webview加载的页面获取小程序本地缓存数据呢?
没错,url是动态传值的。下面是小程序加载网页的代码。
那么我们为什么不直接写如下呢?
注意两段代码的区别
第一次访问的地址是直接动态传递过去的
第二段只动态拼接参数
我尝试了第二个,但无法接收页面。我认为这可能与小程序的页面加载生命周期有关。
那么第一个我们动态设置url参数的代码如下:
onLoad() {
this.setData({
userInfo:wx.getStorageSync('userinfo'),
url:"https://www.baidu.com/abc.html?_t=1&user="+wx.getStorageSync('myuserinfo').phone,
})
}
网页值代码如下:
alert(JSON.parse((getQueryString("user"))))
//根据参数名获取url问号携带参数值
function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]);
return null;
}
达到效果