微信小程序内嵌网页之实践-webview

本文探讨了在微信小程序中加载非关联公众号文章的方法,尝试使用webview和iframe技术进行实现,但遇到了限制问题。

最近碰到一个需求,需要在微信小程序里加在非关联公众号的文章内容,并且修改部分文章内容。

在pc端这个很容易实现,可以通过Chrome extention实现,而在微信小程序中,能快速想到的就是webview加载网页。

由于webview只能直接打开关联公众号的文章,于是想到了在webview所在网页中嵌入一个iframe,用来加载非关联公众号的文章。

然后发现百度是可以打开的。点击switch按钮,切换iframe的链接为公众号文章,却显示不出来了。

通过调试发现有个错误

在网上找到相关的解释:

好吧,各位大兄dei,有没有其他的解决办法,跪求!!!

虽然给定的引用未直接涉及微信小程序webview内嵌micro-app的相关信息,但从技术通用角度可以提供一些实现方法和注意事项。 ### 实现方法 - **环境准备**:需要有微信开发者工具,创建微信小程序项目,并且要确保micro - app已经开发完成,能够独立运行。 - **webview引入**:在小程序的wxml文件中使用`<web - view>`组件,该组件用于承载网页内容。示例代码如下: ```xml <!-- 在小程序的wxml文件中 --> <web-view src="{{microAppUrl}}"></web-view> ``` - **数据通信**:通过`postMessage`方法进行小程序与micro - app之间的数据通信。在小程序中可以监听`message`事件接收消息,在micro - app中可以调用`window.postMessage`发送消息。示例代码: ```javascript // 小程序js文件中监听消息 Page({ onLoad: function () { this.webViewContext = this.selectComponent('#webviewId'); this.webViewContext.onMessage((res) => { console.log('收到micro - app消息:', res.data); }); }, sendMessageToMicroApp: function () { this.webViewContext.postMessage({ data: '来自小程序的消息' }); } }) // micro - app中发送消息 window.postMessage({ data: '来自micro - app的消息' }, '*'); ``` ### 注意事项 - **域名配置**:需要在小程序管理后台配置合法的域名,web - view 中只能加载配置过的域名下的网页,否则无法加载micro - app。 - **数据安全**:在进行数据通信时,要对传递的数据进行严格的验证和过滤,防止恶意攻击,如 XSS 攻击等。 - **兼容性问题**:不同版本的微信开发者工具和微信客户端可能存在兼容性问题,需要进行充分的测试,确保在不同环境下都能正常运行。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值