钉钉小程序(企业内部应用)开发--钉钉小程序web-view嵌套H5与小程序之间的通信(H5跳转钉钉小程序小程序postMessage)

钉钉小程序代码:嵌套H5 pages/login/index.axml


<web-view   src="{{urlH5}}" onMessage="test"></web-view>

H5向小程序发送信息:
H5代码:
通过以下代码我一直报错dd没有被定义

if (navigator.userAgent.toLowerCase().indexOf('dingtalk') > -1) {
	
		document.writeln('<script src="https://appx/web-view.min.js"' + '>' + '<' + '/' + 'script>');
		
	}

所以这样子引入dd !!!!
代码:template.h5.html
	<script type="text/javascript" src="https://appx/web-view.min.js"></script>


在h5页面中引入以上代码成功使用dd

H5点击按钮向H5发送信息
H5页面代码:
 

<view class="goBoxto" @click="test">
		向小程序发送信息
		</view>

test() {
				// 判断当前是否处于钉钉环境
				if (navigator.userAgent.toLowerCase().indexOf("dingtalk") > -1) {
					// 下载dd资源 这种引入钉钉也报错
					if (!window.dd) {
						// console.log("追加dd");
						//     let script = document.createElement("script");
						//     script.src = "https://appx/web-view.min.js";
						//     script.async = true;
						//     document.head.appendChild(script);
						// console.log("追加dd1");
					}
					console.log("通信", window);
					// H5向钉钉小程序通信
					window.dd && window.dd.postMessage({
						noticeDetail: JSON.stringify(this.data),
					});
				}
			},

小程序端接受信息 代码:pages/login/index.js

  test(e){
     console.log("获取数据",e.detail.noticeDetail);

     dd.setStorageSync({
      key: 'noticeDetail',
      data: e.detail.noticeDetail
    });
//接受成功后做其他操作
    dd.navigateTo({
   
      url: "/pages/newsDetail/index"
  })
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值