最近做了一个需求在公众号网页推送的模板消息,连接跳转到关联小程序,遇到总是跳转到首页的问题。说一下里面的坑
后端是PHP进 行消息发送 官方发送数据例子如下:
最开始 为了构造一个json数据格式,
第一步:我是先把 数据构造成一个多维数组 $arr,
第二步:$json_data = json_encode($arr),然后再 $json = urldecode($json_data);
第三步:再然后 就是 通过 curl_init 进行发送了,这里不再详述。
接下来有个坑,发送不成功,错误信息 如下
{“errcode”:40165,“errmsg”:"invalid weapp pagepath}
百度下,很快有了答案,说官方文档有误,把 pagepath 改为 path 即可,我试了下,果然可以,消息推送正常,开心坏了!
奇怪的事情发生了,点击推送消息后没有跳转到小程序指定页面,一直是首页!
然后百度搜索各种答案,有说 路径参数名,改为 page(试了下居然可以),有的说 为 pagepath(这不是刚跳出来的坑吗?为啥别人居然可以成功发送?)
经过各种测试终于发现问题所在,第二步有问题!json_encode() 把原来数组中的路径 斜杠转义了! 'pages/auth/authid=6' 变成了 'pages\/auth\/authid=6' 难怪找不到路径!
后来看了下手册,有防止 json_encode() 转义 斜杠的参数
JSON_UNESCAPED_SLASHES (不转义斜杠,对应的数字 64)
然后把第二步 改为 $json_data = json_encode($arr, JSON_UNESCAPED_SLASHES )
还得把 页面参数由 path 改为 pagepath (不改会报错!)
再发送消息就可以正常接收并跳转到指定小程序页面啦!下面是我的构造的正确的多维数组格式
如果你进入页面的路由为 "/indexid=1&sign=2" 则在index页面里可以如下看到 onLoad:function(e){ consolelog(e); }
微信小程序可以通过后台接口传递数据,实现数据传递、交互功能而不需要页面跳转。当小程序需要传递数据时,可以使用wxrequest请求后台接口,将数据发送给后台,然后后台返回需要的数据,小程序再将收到的数据进行处理,完成交互。此外,小程序还可以通过Storage API存储数据,再通过读取Storage中的数据实现页面间信息的交互传递,避免页面跳转的过程,提升用户体验。虽然不跳转页面传递数据的实现方式有所限制,但对于某些需要快速响应、处理的交互场景具有很好的适用性。
以上就是关于微信公众号模板消息无法跳转到指定小程序页面全部的内容,包括:微信公众号模板消息无法跳转到指定小程序页面、小程序 navigator 的url为什么不跳转、微信小程序不跳转页面传递数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)