WebNN Origin Trial 注册
Web Neural Network API (WebNN) 现已通过 Chrome 和 Edge 浏览器的 Origin Trial 开放测试。Origin Trial 允许开发者在新的 Web 平台功能成为标准之前,在生产环境中进行试验。
什么是 Origin Trial?
Origin Trial 为您的网站提供实验性功能的访问权限,允许真实用户与新功能进行交互。这有助于浏览器厂商在将功能提供给所有用户之前收集反馈并验证功能。
前提条件
在注册 WebNN Origin Trial 之前,请确保您具备:
- 将使用 WebNN API 的网站或 Web 应用
- 修改网站 HTTP headers 或 HTML 的管理员权限
- 有效的 origin (协议 + 主机名 + 端口)
注册步骤
Google Chrome
-
访问 Chrome Origin Trials 页面
-
使用 Google 账号登录
您需要进行身份验证才能注册试用
-
提供您的 Origin
输入您计划使用 WebNN 的 Origin (例如:
https://example.com)- 必须包含协议 (https://)
- 支持子域名通配符 (例如:
https://*.example.com)
-
提交注册
查看并接受条款,然后提交注册
-
接收试用令牌
您将收到针对您 Origin 的唯一令牌
Microsoft Edge
-
访问 Edge Origin Trials 页面
-
登录
进行身份验证以访问试用注册
-
提供您的 Origin
输入您计划使用 WebNN 的 Origin
-
提交注册
接受条款并完成注册
-
接收试用令牌
您将收到针对您 Origin 的唯一令牌
部署试用令牌
收到试用令牌后,您需要将其添加到您的网站。有三种方法:
方法 1: Meta 标签
在 HTML 的 <head> 部分添加 meta 标签:
<meta http-equiv="origin-trial" content="YOUR_TOKEN_HERE">您需要在每个使用 WebNN 的页面提供令牌
您可以在 HTML 文档的
<head>部分插入两个 meta 标签,Chrome 和 Edge 的令牌各一个。浏览器设计为忽略它们无法识别的令牌,因此您可以安全地同时包含两者。
此方法适用于无法修改服务器头的情况。
方法 2: HTTP 头
将令牌添加为 HTTP 响应头:
Origin-Trial: YOUR_TOKEN_HERE此方法将令牌应用于从您源站提供的所有资源。
方法 3: 通过编程方式提供令牌
使用 JavaScript 注入令牌:
const otMeta = document.createElement('meta');
otMeta.httpEquiv = 'origin-trial';
otMeta.content = 'TOKEN_GOES_HERE';
document.head.append(otMeta);验证您的设置
确认 Origin Trial 是否激活:
- 在 Chrome 或 Edge 中打开您的网站
- 打开
开发者工具(F12) - 导航到
控制台标签页 - 检查是否有 Origin Trial 相关消息
- 验证
navigator.ml是否可用:
if ('ml' in navigator) {
console.log('WebNN API 可用');
} else {
console.log('WebNN API 不可用');
}重要注意事项
试用期限
- Origin Trial 的持续时间有限,请在各浏览器的 Origin Trial 页面上监控试用状态
- Chrome: 146 至 148
- Edge: 146 至 148
- 计划在试用结束时删除或更新令牌
用户选择退出
- 用户可以在浏览器设置中禁用 Origin Trial
- 您的代码应优雅地处理 WebNN 不可用的情况
Origin Trial 反馈
作为试用参与者,您的反馈很有价值,有助于塑造 WebNN API 的未来:
- 通过 Origin Trial 网站提交反馈: 您可以直接通过 Chrome Origin Trials 仪表板提供私密反馈。此反馈是保密的,仅供 Chrome 团队的有限人员使用。
- 公共社区反馈
令牌续期
- 当您的试用令牌即将过期时,您将收到包含续期链接的电子邮件通知
- 要续期令牌,系统会要求您提交关于试用体验的反馈
- 此反馈有助于浏览器厂商了解功能的使用情况以及需要哪些改进
使用示例
Origin Trial 激活后,您可以开始使用 WebNN API:
async function initializeWebNN() {
if (!('ml' in navigator)) {
console.error('不支持 WebNN');
return;
}
try {
const context = await navigator.ml.createContext();
// 在此处实现您的 WebNN 代码
} catch (error) {
console.error('创建 WebNN 上下文失败:', error);
}
}
initializeWebNN();最佳实践
- 特性检测: 在使用 API 之前始终检查 WebNN 支持
- 备用策略: 为不支持 WebNN 的浏览器实现备用方案
- 错误处理: 优雅地处理错误,因为 API 仍处于实验阶段
- 性能监控: 跟踪使用 WebNN 带来的性能改进
- 安全性: 仅在 HTTPS 源站上使用 Origin Trial
获取帮助
- Chrome WebNN 问题: Chromium Bug Tracker
- Edge WebNN 问题: Edge Developer Support
后续步骤
注册并实现试用令牌后:
- 彻底测试您的 WebNN 实现
- 监控性能和用户体验
- 向浏览器厂商提供反馈
- 了解试用到期日期
- 在标准 API 可用时规划迁移