支付宝小程序 组件 web-view h5交互

时间:2025-03-04 14:39:45

目录结构

/component
    /index-page
        /
        /
        /
        /
/pages
    /index
        /
        /
        /
        /
    /web
        /
        /
        /
        /

支付宝小程序

/pages/index/

<cny-index-page   arr="{{arr}}" ref="saveRef" onFun="onFun"   /> 

/pages/index/

Page({
   data: {
    id:'',
    arr:[],
    
  },
  onLoad(query) {
     
     // 调用子组件方法
     .music_click();


     // 子组件的变量只能通过xml进行传递

  },
  onReady() {
    // 页面加载完成
  },
  onShow() {
    // 页面显示
    
  },
  onHide() {
    // 页面隐藏
  },
  onUnload() {
    // 页面被关闭
  },
  onTitleClick() {
    // 标题被点击
  },
  onPullDownRefresh() {
    
  },
  onReachBottom() {
    // 页面被拉到底部
  },
  onShareAppMessage() {
    // 返回自定义分享信息
    
  },
  onFun(){

      // 子调用父
  },
  // 父调用子
  saveRef(ref){
      // 将ref存起来,在想要调用的地方使用
       = ref
  },

});

/pages/index/

{
 
  "usingComponents": {
    "index-page": "/component/index-page/index"    // 引入组件
  }
}

组件

 /component/index-page/

<view></view>

 /component/index-page/

Component({

	/**
	 * 组件的初始数据
	 */
	data: {
		

	},
	// 父传子组件 给值默认值
	props: {
		id: Number, // 活动ID
		arr: Object, // 加载数据
		onFun: () => {}, // 用户定位
	},
    // 在组件创建时触发
	onInit() {
        // 页面初始化加载
        
        // 使用父级变量
        

        // 使用父级方法
        ()

	},
    // 自定义组件首次渲染完毕后的回调
	didMount() {
	     
	},
    // 自定义组件被卸载后的回调
	didUnmount() {

	},

	/**
	 * 组件的方法列表
	 */
	methods: {
        // 播放音乐
        music_click(){
            
        }

	}
})

  /component/index-page/

{
  "allowsBounceVertical": "NO"
}

web-view

/pages/web/

<web-view src="{{weburl}}"onMessage="onmessage">
</web-view>

/pages/web/

Page({
	data: {
		weburl: '',

	},
	onLoad(options) {

	},
	//监听来自于h5页面的消息  
	onmessage(e) {
		// .变量
		var music = ;
		// 获取所有页面
		var pages = getCurrentPages();
		for (var i = 0; i < ; ++i) {
			var currentPage = pages[i];;
			let currentPage_url = ;
			if (currentPage_url == 'pages/theme/theme') {
				// 操作该页面的数据
				()

				if(music == 'music'){
				    // 操作该页面子组件的方法
				    .music_click();
                }

				break;
			}

		}

	},
});

h5

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>h5 向支付宝小程序传参数</title>
		<!-- 引入支付宝js -->
		<script type="text/javascript" src="https://appx/" rel="external nofollow"  ></script>
		<script>
			// 保留当前页面,跳转到新页面。
			({
				url: '/pages/theme/theme?rid=2941&lid='++'&fromname=mini' //路径可以使用相对路径或绝对路径的方式进行传递
			})
			
			// 是关闭当前页面,返回上一级或多级页面的 API。
			()
			
			// 传参数
			({
				music: 'music',
			});
		</script>
	</head>
	<body>
	</body>
</html>