收藏
回答

小程序 向 webview 传递数据问题?

业务是 在H5页面跳转到小程序页面,调用地图选择位置后,返回webview页面,将地图数据带回到H5中。

现在问题是更改了webview 的src,并把要传递的数据 加 “#”号加在原来的链接尾部。H5页面写定时器 定时打印地址栏地址,发现地址并没有变化。

之前好像出现过几回监听到了,后面就一直稳定监听不到了

回答关注问题邀请回答
收藏

2 个回答

  • 古?
    古?
    2023-08-03

    谢谢你的回答

    主要是webview 地址发生变化(参数发生变化)会使得页面刷新。就想去掉这个刷新效果

    2023-08-03
    有用
    回复 1
    • 清风道人
      清风道人
      03-17
      兄弟找到解决办法没有
      03-17
      回复
  • CRMEB
    CRMEB
    2023-08-03

    在更改webview的src并尝试通过在链接尾部添加“#”号传递数据时,发现H5页面的定时器没有打印出地址栏地址变化。这种情况可能是由于以下原因导致的:


    URL参数格式错误:确保您在将数据添加到URL链接尾部时,参数的格式是正确的,并且符合URL的规范。请注意,在URL中使用“#”号通常用于锚点定位,而不是传递参数。


    浏览器缓存问题:当URL只有片段标识符(即“#”号后面的内容)发生变化时,浏览器可能会将其视为同一页面,不会触发地址栏地址的变化事件。这可能导致H5页面的定时器无法监听到URL的变化。您可以尝试清除浏览器缓存,或者在每次更改URL时使用不同的片段标识符来确保URL的唯一性。


    Webview配置问题:某些Webview可能具有特定的配置、策略或限制,它们可能会影响URL的变化事件的触发。请检查相关的Webview配置和文档,确保没有设置禁止或阻止URL变化事件的选项。


    对于您的具体问题,建议您进行以下操作:


    确保正确处理URL参数的格式,并避免直接使用“#”号传递数据。

    可以尝试在URL中添加其他参数,而不仅仅是片段标识符,这样可以更可靠地触发地址栏地址的变化事件。

    如果问题仍然存在,您可以进一步检查Webview的配置和文档,或者考虑使用其他方式来实现H5页面与小程序之间的数据传递,例如采用回调函数、本地存储或其他相关技术。

    请注意,具体解决方案可能因浏览器、Webview版本或具体场景而异。建议您针对您使用的特定环境进行更详细的研究和测试,并与相关技术支持团队进行沟通,以获得更准确和个性化的帮助。

    2023-08-03
    有用
    回复
登录 后发表内容