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

目录结构

/component
    /index-page
        /index.js
        /index.acss
        /index.axml
        /index.json
/pages
    /index
        /index.acss
        /index.axml
        /index.js
        /index.json
    /web
        /web.acss
        /web.axml
        /web.js
        /web.json

支付宝小程序

/pages/index/index.axml

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

/pages/index/index.js

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


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

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

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

});

/pages/index/index.json

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

组件

 /component/index-page/index.axml

<view></view>

 /component/index-page/index.js

Component({

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

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

        // 使用父级方法
        this.props.onFun()

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

	},

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

	}
})

  /component/index-page/index.json

{
  "allowsBounceVertical": "NO"
}

web-view

/pages/web/web.axml

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

/pages/web/web.js

Page({
	data: {
		weburl: '',

	},
	onLoad(options) {

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

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

				break;
			}

		}

	},
});

h5

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
小程序内嵌H5实现地图选址的方法有多种,我来介绍一种常用的方式。 首先,我们需要在小程序中创建一个button按钮,用户点击该按钮后会跳转到H5页面。可以通过小程序的wx.navigateTo函数实现页面跳转,并传递参数给H5页面。 在H5页面中,我们可以引入地图相关的JavaScript库,例如百度地图API或者高德地图API。通过调用API提供的函数和方法,可以实现在H5页面上显示地图,并提供选址的功能。 在地图上选址的过程中,可以使用地图API提供的搜索功能,让用户输入关键字,然后根据关键字在地图上搜索相关位置,并在地图上标注出搜索结果。用户可以在搜索结果中选择一个位置作为选址。 当用户在H5页面上选中了一个位置后,可以通过调用JavaScript代码的方式将选中的位置信息传递给小程序。在H5页面中,可以使用window.location.href实现页面跳转,并将选中的位置信息作为url参数传递给小程序。 在小程序中,可以通过wx.navigateBack函数回到上一个页面,并通过上一个页面的参数接收选中的位置信息。然后,可以使用这些位置信息在小程序中进行相应的处理,例如显示选址结果、保存选址信息等。 综上所述,通过小程序内嵌H5实现地图选址的步骤为:小程序中创建按钮 → 跳转到H5页面并传递参数 → H5页面显示地图并实现选址功能 → 用户选中位置并将选中位置信息传递给小程序小程序接收选中位置信息并进行相应处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值