微信小程序之内嵌网页(webview)

微信小程序现支持内嵌HTML页面,通过<web-view>组件可轻松集成已有网页系统,减少重复工作。需设置业务域名并验证,组件铺满全屏,不可混排。JSSDK提供页面间跳转。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

微信小程序提供了新的开放能力!它终于开放了在小程序中内嵌HTML页面的功能!从微信小程序基础库1.6.4开始,我们就可以在小程序内放置一个<web-view>组件来链接我们的HTML页面了。在这之前,我们在小程序中没有办法整合我们已有的HTML程序(比如HTML5文章系统,商城系统等),只能使用小程序的方式重新开发一套,现在有了<web-view>就可以方便的集成这些网页系统,为我们减少了可观的工作量。

下面我们来看一下具体如何使用。

设置权限

要在小程序中访问外部网页,需要先设置允许访问的业务网站的域名。让我们先登录小程序平台管理后台页面,进入“设置” => "开发设置",可以看到这边多出来了一块“业务域名”的设置区域:

点击“开始配置”按钮,弹出一个窗口,我们可以在这个窗口中添加一个或多个你要在小程序中访问的域名。当然,不是所有的域名下的网页你的小程序都可以访问,只有那些你可以“掌控”的网站,你才可以访问!你需要在这个窗口里下载“校验文件”,并把这个校验文件上传到你的网站的根目录,供小程序平台进行验证,验证通过了才能成功添加域名。

使用web-view组件显示HTML页面

<web-view>组件的使用就比较简单了,类似HTML里面的<iframe>标签:

<web-view src="https://www.xxxxxxxxx.com/index.html" />

就这样,HTML页面就可以在小程序中显示了。

但是,和<iframe>可以嵌入到页面的任意部分不同的是,小程序的这个<web-view>总是自动铺满整个页面,且每个页面只能有一个<web-view>,它会覆盖其他组件。也就是说,没有办法实现小程序界面组件和<web-view>页面混排的情况,这点要注意。

在内嵌的HTML页面中跳转回小程序

如果要在已经通过<web-view>嵌入小程序的网页中,跳转到小程序中的其他页面(Page),可以引入微信的一个JSSDK,使用它提供的方法来实现相关跳转功能。网页代码类似如下所示:

<!-- html代码中引入JS SDK -->
<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.0.js"></script>

<script>
// 跳转到小程序的一个页面
wx.miniProgram.navigateTo({url: '/path/to/page'})
</script>

(不过很遗憾,还是没有办法从一个网页中跳转到一个指定的小程序。哈哈,我也就瞎想想~~)

总结

这一内嵌网页的功能,也算顺应了广大开发者的要求,解决了很大一部分开发者的痛点。在混合开发方面的增强,为小程序的功能开发提供了不少灵活性和便利性。

### 微信小程序 WebView 内嵌 iframe 打开 PDF 解决方案 #### 配置域名白名单 为了使微信小程序中的 `web-view` 正常加载外部资源,包括内嵌的 `<iframe>` 加载 PDF 文件,所涉及的所有域名都必须提前配置到微信小程序管理后台的 **合法域名** 白名单中[^1]。 #### 使用合适的 URL 方式访问 PDF 对于直接通过网络路径访问 PDF 文档的方式,应确保该文档所在的服务器能够正确处理请求头并返回适当的内容类型 (`Content-Type: application/pdf`)。如果遇到某些情况下 iOS 平台可能出现加载失败或显示空白的问题,则考虑采用如下方法之一: - 将 PDF 文件转换成 HTML5 Canvas 或者图片序列的形式展示; - 利用第三方服务提供商(如 Adobe Document Cloud, Foxit PhantomJS 等)提供的在线查看器 API 来间接呈现 PDF 内容; #### 处理特殊字符编码问题 为了避免因 URL 中含有中文或其他非 ASCII 字符而导致兼容性错误,在构建指向 PDF 的链接时应当使用 JavaScript 函数 `encodeURIComponent()` 对参数部分进行转义处理。 #### 实现代码示例 下面给出一段简单的实现代码用于说明如何在 H5 页面里利用 `<iframe>` 嵌入 PDF 查看功能,并将其放置于微信小程序内的 `web-view` 容器之中: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>PDF Viewer</title> </head> <body style="margin:0;padding:0;"> <!-- 注意替换为实际可用的支持跨域资源共享(CORS)策略的服务端地址 --> <iframe src="https://example.com/path/to/document.pdf#toolbar=0&view=FitH" width="100%" height="100%"></iframe> </body> </html> ``` 请注意调整上述模板里的 `src` 属性值以匹配目标 PDF 文件的确切位置,并确认其所在服务器已设置好 CORS 政策允许从小程序发起的 HTTP 请求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值