小程序
小游戏
企业微信
微信支付
扫描小程序码分享
点击分享时。ios下的webViewUrl中锚点#后面的参数获取不到。安卓才可以获取完整的
很急,在线等解决
21 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
如何解决
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
求 解决方案.............
感觉兼容性还是有待提高的,安卓与IOS的坑还是有不少的,望官方解决
同求,求解决方案~~~~~~
2024年了 我估计也是遇到了这个问题 但是仅仅是在苹果10上会出现参数丢失的问题,其他后出现的苹果不会出现
【这是前提】前端框架支撑路由功能,比如我这里是通过vue的构建的页面,可以$route获取链接
然后通过postMessage()和小程序对接。详情见:https://developers.weixin.qq.com/miniprogram/dev/component/web-view.html?search-key=postMessage
比如我这边是注册一个全局路由钩子进行拦截处理,让每次跳到新页面,给小程序发送页面当前链接
// 全局路由
router.beforeEach((to, from, next) => {
console.log(
'to:'
, to,
'from:'
, from)
// fix: ios小程序分享无法获得分享链接问题
// !!!注意点: 通过location.href无法获取当前最新页面链接地址
var
path = to.fullPath;
href = location.origin + location.pathname +
'#'
+ to.fullPath;
'向小程序发送当前页面链接信息'
, href);
wx.miniProgram.postMessage({ data: { url: href} })
next();
})
小程序接收的信息是一个数组,每次发送的信息都加到数组,所以获取最后一个数组项即是当前的地址。
// 接收内嵌h5发送过来当前页面的链接地址
postMessage(e) {
let l = e.detail.data.length - 1;
this
.data.shareUrl = e.detail.data[l].url;
'webview页面发送过来的数据:'
, e);
}
这里也有个条件,也刚好撞上:就是
postMessage发送的数据不会立即执行,需要触发(后退、组件销毁、分享)相关操作才能收到消息,这里刚好需要触发分享操作才能拿到数据。
希望对大家有点帮助。
src最好不要写死吧!莫名其妙的问题。我都是动态赋值的,虽然在js里也是写死的...
这个问题是不是中文问题 加一个编码过程试试
把url用encodeURIComponent()和decodeURIComponent()转义,把url传过去的时候,用encodeURIComponent()转义,用的时候,用decodeURIComponent()解码
兄dei 你没理解。我不是在传值的时候丢失的参数,是直接就没拿到参数啊 - -!
哈哈
你这还笑的出,你的良心不会痛吗
期待答案
解决了吗
https://developers.weixin.qq.com/blogdetail?action=get_post_info&docid=000aca6c0a44389c15363fa4f56800是个老问题了,通过history API更改url都无法获取,期待赶快解决
正在加载...
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
如何解决
求 解决方案.............
感觉兼容性还是有待提高的,安卓与IOS的坑还是有不少的,望官方解决
同求,求解决方案~~~~~~
2024年了 我估计也是遇到了这个问题 但是仅仅是在苹果10上会出现参数丢失的问题,其他后出现的苹果不会出现
【这是前提】前端框架支撑路由功能,比如我这里是通过vue的构建的页面,可以$route获取链接
然后通过postMessage()和小程序对接。详情见:https://developers.weixin.qq.com/miniprogram/dev/component/web-view.html?search-key=postMessage
比如我这边是注册一个全局路由钩子进行拦截处理,让每次跳到新页面,给小程序发送页面当前链接
// 全局路由
router.beforeEach((to, from, next) => {
console.log(
'to:'
, to,
'from:'
, from)
// fix: ios小程序分享无法获得分享链接问题
// !!!注意点: 通过location.href无法获取当前最新页面链接地址
var
path = to.fullPath;
var
href = location.origin + location.pathname +
'#'
+ to.fullPath;
console.log(
'向小程序发送当前页面链接信息'
, href);
wx.miniProgram.postMessage({ data: { url: href} })
next();
})
小程序接收的信息是一个数组,每次发送的信息都加到数组,所以获取最后一个数组项即是当前的地址。
// 接收内嵌h5发送过来当前页面的链接地址
postMessage(e) {
let l = e.detail.data.length - 1;
this
.data.shareUrl = e.detail.data[l].url;
console.log(
'webview页面发送过来的数据:'
, e);
}
这里也有个条件,也刚好撞上:就是
postMessage发送的数据不会立即执行,需要触发(后退、组件销毁、分享)相关操作才能收到消息,这里刚好需要触发分享操作才能拿到数据。
希望对大家有点帮助。
src最好不要写死吧!莫名其妙的问题。我都是动态赋值的,虽然在js里也是写死的...
这个问题是不是中文问题 加一个编码过程试试
把url用encodeURIComponent()和decodeURIComponent()转义,把url传过去的时候,用encodeURIComponent()转义,用的时候,用decodeURIComponent()解码
兄dei 你没理解。我不是在传值的时候丢失的参数,是直接就没拿到参数啊 - -!
哈哈
你这还笑的出,你的良心不会痛吗
期待答案
解决了吗
https://developers.weixin.qq.com/blogdetail?action=get_post_info&docid=000aca6c0a44389c15363fa4f56800是个老问题了,通过history API更改url都无法获取,期待赶快解决