大数跨境

Shop Minis 2026年3月-4月更新

Shop Minis 2026年3月-4月更新 Shopify电商独立站
2026-05-20
7
导读:用户现在可以拒绝特定权限范围,并继续使用您的 Mini。同意机制不再是“全有或全无”——如果用户拒绝了某个权限范围,您的 Mini 应优雅降级,而不是阻断整个体验。如果您的 Mini 在权限被拒绝时出

新功能

可选授权

用户现在可以拒绝特定权限范围(scopes)并继续使用您的 Mini。授权不再是“全有或全无”的模式——如果用户拒绝了某个权限范围,您的 Mini 应优雅地降级功能,而不是阻断整个体验。如果您的 Mini 在权限被拒绝时直接崩溃或失败,请使用以下新提供的钩子(hooks)进行更新。

useCheckScopesConsent 钩子

在运行时检查用户已授予哪些权限范围。使用此钩子来有条件地渲染依赖于特定权限范围的功能。

用法:

import {useCheckScopesConsent} from '@shopify/shop-minis-react' function MyMini() { const {scopes} = useCheckScopesConsent() if (scopes.includes('product_lists:write')) { return } return }

useRequestScopesConsent 钩子

在用户之前拒绝后重新请求授权。该钩子必须从用户交互中调用——您不能自动重新提示。适用于那些通过授予授权来解锁明确的用户发起操作的流程。

用法:

import {useRequestScopesConsent} from '@shopify/shop-minis-react' function GrantAccessButton() { const {requestScopesConsent} = useRequestScopesConsent() return ( <button onClick={() => requestScopesConsent(['product_lists:write'])}> Enable saving products </button> ) }

useCheckPermissions 钩子

与作用域不同,useCheckPermissions 允许您的 Mini 在调用需要特定权限的操作之前检查操作系统级别的权限(如相机、照片库等)。

用法:

import {useCheckPermissions} from '@shopify/shop-minis-react' function CameraFeature() { const {permissions} = useCheckPermissions(['camera']) if (permissions.camera === 'granted') { return <CameraView /> } return <RequestCameraButton /> }

request_blocked 哨兵

当用户拒绝某个作用域或权限且平台不再重新提示时,相关钩子现在返回 request_blocked 哨兵值而不是 null。这使您能够区分“尚未询问”和“已询问但被阻止”,并相应地调整用户界面。有关完整状态机的详细信息,请参阅 shopify.dev 上的 Scopes Consent 文档。

意图(Intents)

意图是 Shop 应用与 Shop Minis 之间的一种新型通信层。Shop 应用会在具有上下文相关性的时刻(例如商品详情页)启动您的 Mini,并传递相应的上下文信息(通常是商品)。对于合作伙伴而言,这开辟了一条新的分发路径:不再仅依赖“探索”标签页,您的 Mini 可以在买家意图最强的地方展示。

目前支持两种意图:

意图 用途
try_on 虚拟试穿 Minis — 服装、配饰或任何可穿戴物品
view_in AR 和空间放置 Minis — 家具、装饰品或任何可在空间中可视化的物品

如果您的 Mini 符合支持的意图之一,或者您有其他用例(如食谱制作、礼品推荐、自定义配置等),请联系 Shop Minis 团队——我们目前正在招募合作伙伴,并积极评估新的意图。

useIntent Hook

解析启动您的 Mini 的意图。使用此功能读取 Shop 应用传入的上下文,并将用户路由到正确的体验页面。

用法:

import {useIntent} from '@shopify/shop-minis-react' function MyMini() { const intent = useIntent() if (intent?.action === 'try_on') { return <TryOn productId={intent.productId} /> } return <DefaultExperience /> }

异步存储限制

为了保持 Mini 的快速运行,我们引入了对 useAsyncStorage 和 useSecureStorage 的限制:

  • 每个 Mini 最多 10 个键
  • 每个键 1 MB

大多数 Mini 都远低于这两个限制。异步存储旨在用于小型结构化数据——如果您要持久化较大的资产(如图片),请使用专用的上传钩子并存储生成的 URL,而不是原始字节。

Product Hooks 上的 availableForSale

产品钩子现在在变体上暴露 availableForSale,并且 SDK 的商务按钮(AddToCartButton、BuyNowButton)开箱即用即可处理缺货状态。如果您渲染产品卡片或构建自定义商务流程,请在让用户添加到购物车之前检查 availableForSale。

CLI 中的 pnpm 支持

npx minis create 现在支持与 npm 和 yarn 并列检测和使用 pnpm。

用法:

npx minis create # Select pnpm when prompted

文档更新

作用域同意

shopify.dev 上的 Scopes Consent 页面已更新以反映可选同意机制。它现在记录了完整状态机(已授予、已拒绝、request_blocked),并包含针对新 useCheckScopesConsent、useRequestScopesConsent 和 useCheckPermissions 钩子的指导。

意图

新的文档页面全面介绍了意图:它们是什么、目前支持哪些意图(try_on、view_in)、launch-context 契约,以及如何在您的 Mini 中使用 useIntent 钩子解析意图。


弃用项

localStorage 和 sessionStorage

Mini Webview 内不再允许使用浏览器存储——它在 Android 上被禁用,并在 iOS 上于会话之间重置。Shop Minis ESLint 配置现在会标记任何使用 localStorage 或 sessionStorage 的情况。请迁移到 useAsyncStorage(持久化)或 useSecureStorage (encrypted).。


包版本

包 版本
@shopify/shop-minis-platform 0.17.0
@shopify/shop-minis-react 0.20.0
@shopify/shop-minis-cli 0.3.11

其他更改

  • 禁止幻影依赖项导入:合作伙伴 ESLint 配置会标记那些未在您的 package.json 中声明的包的导入。
  • 允许传递性 SDK 依赖项:clsx、tailwind-merge 和 cva 现在明确可供合作伙伴使用。
  • TypeScript 6:SDK 现在基于 TypeScript 6.0.2 构建(此前为 5.8.3)。

摘要

2026年3月至4月为 Shop Minis 平台带来了重大改进:

  1. 可选同意现在是默认设置——三个新钩子让您的 Mini 在作用域被拒绝时优雅降级。
  2. 意图是一种新的通信层,用于从 Shop 应用中上下文相关的时刻启动您的 Mini——目前支持 try_on 和 view_in。
  3. 异步存储限制为每个 Mini 最多 10 个键,每个键 1 MB。
  4. availableForSale 针对产品变体的首流出库处理。
  5. localStorage 和 sessionStorage 在 Mini Webview 中不再被允许。

如有任何问题或反馈,请联系 Shop Minis 团队。

【声明】内容源于网络
0
0
Shopify电商独立站
1234
内容 7163
粉丝 0
Shopify电商独立站 1234
总阅读95.5k
粉丝0
内容7.2k