小程序内嵌H5(webview),调起微信分享

文章详细阐述了如何在H5中调起小程序的分享功能,包括在webview页面开启分享权限,小程序内自定义onShareAppMessage方法来获取分享来源,并劫持分享路径以自定义分享内容。同时,描述了当用户通过分享进入时,在H5页面如何检测并处理参数,实现特定页面的跳转。
摘要由CSDN通过智能技术生成

该功能时作为H5调起小程序的微信分享

1:小程序方 在webview页面,打开分享的权限


  wx.showShareMenu({
          withShareTicket:true,
           menu:['shareTimeline','shareAppMessage']
      })

2:在小程序内写 onShareAppMessage方法,用来获取在哪个页面调起的微信分享,


    onShareAppMessage: function(res) {
                console.log(res)
                let nowURL = decodeURIComponent(res.webViewUrl)
                let id = nowURL.split('?')[1].split('&')[0].split('=')[1]
                let name = decodeURIComponent(nowURL.split('?')[1].split('&')[1].split('=')[1])
                let data = {
                    id: id,
                    name: name,
            
                }
                let payData = JSON.stringify(data)
                let url = `/pages/music/music?data=${payData}`
                return {
                    title: name,
                    path: url,

                }

            },

3:在2中的这处代码,是用来劫持分享,并自定义分享的,


 let payData = JSON.stringify(data)
                let url = `/pages/music/music?data=${payData}`
                return {
                    title: name,
                    path: url,

                }

4:转发出去后,通过用户的点击再次回来时,在webview页面获取是否有参


        onLoad: function(e) {
            console.log(e)
            if (e.data) {
                console.log(e)ghu 
                let i = JSON.parse(e.data)
                console.log(i)
                this.url = 'http://192.****8080/?hrsaasUserId=95623&id='+i.id+'&name='+ i.name
                console.log(this.url)

            } else {
                this.url = 'http://192.****:8080/?hrsaasUserId=95623'
            }

如果有参,就是通过分享页面进来的,跳入webview页面

如果无参,就认为是从首页点进来的 不做处理

5:在H5的onload处 获取参数,逻辑同4, 有参就跳入你想进的页面


if(e.data){
uni.navigateTo({
url:'/pages/consulting/scaleDetail?id='+this.scaleId+'&name='+encodeURIComponent(this.scaleName)+'&questionType=0&isPay=0',
})

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我可以给你一些建议,你可以使用uniapp的getApp()函数来访问微信小程序的App实例,然后调用App实例里面的getWxWebViewInfo()函数来获取小程序内嵌webview的相关信息。 ### 回答2: 要在uniapp中获取微信小程序内嵌Webview,可以使用uni-app的原生API和微信小程序的API进行操作。具体步骤如下: 1. 首先,在uniapp的项目中引入`uni.getEnv()`方法,用于判断当前运行环境是否为微信小程序。 ``` import uni from '@/uni' ``` 2. 然后,在需要获取Webview页面或组件中,使用`uni.getEnv()`方法进行判断。 ``` if (uni.getEnv() === 'WEAPP') { // 运行在微信小程序环境中 // 获取Webview的方法 } ``` 3. 在微信小程序环境中,我们需要使用微信小程序的API来获取Webview。可以使用`wx.createSelectorQuery()`方法来获取Webview的节点。 ``` if (uni.getEnv() === 'WEAPP') { wx.createSelectorQuery().select('#webview').context(function (res) { console.log(res) }).exec() } ``` 4. 在上述代码中,`#webview`是Webview节点的选择器,需要根据实际情况进行修改。`res`参数中的`context`属性即为获取到的Webview节点。 5. 接下来,可以通过`res.context`来操作Webview,例如设置URL、发送消息等。 ``` if (uni.getEnv() === 'WEAPP') { wx.createSelectorQuery().select('#webview').context(function (res) { res.context.postMessage({ message: 'Hello Webview' }) }).exec() } ``` 以上就是在uniapp中获取微信小程序内嵌Webview的简单步骤。需要注意的是,这种方法只适用于运行在微信小程序环境中的uniapp项目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值