API / 组件相关
小程序如何接收链接里的自定义参数?
App() 中设置 onLanch(query)
。 query
内容格式为:“参数名=参数值&参数名=参数值…”。
示例 query
值如下:
- 有页面参数(没有启动参数):
location.href = "alipays://platformapi/startapp?appId=xxx&page=pages/goodDetail/goodDetail"+encodeURIComponent("?goods_id="+goods_id)
- 有页面参数,有启动参数:
location.href = "alipays://platformapi/startapp?appId=xxx&page=pages/goodDetail/goodDetail"+encodeURIComponent("?goods_id="+goods_id)+&query=encodeURIComponent("appParams="+xx)
示例代码如下:
App({
onLaunch(query) {
my.alert({
title: 'ceshi', // alert 框的标题
content: JSON.stringify(query),
});
}
})
my.httpRequest 使用问题
目前 my.httpRequest 已不建议使用,建议更换为 my.request 接口。
my.request 的 method 目前只支持 get 和 post 方式,不支持其它的方式吗?
my.request() 目前只支持 get、post 请求,其他的请求暂时不支持。
如何在生活号中关联小程序?
登录 蚂蚁金服开放平台, 按照以下步骤进行生活号关联小程序:
- 在 小程序管理 中,设置关联小程序;
- 在 自定义菜单 中,设置菜单类型为 小程序;
- 按照要求填写相关信息,并设置小程序指定页面的链接。
小程序只支持 https 域名配置吗?
小程序只支持 https 域名配置。
相比于 http,https 可以提供更加优质保密的信息,保证了用户数据的安全性,此外 https 同时也一定程度上保护了服务端,使用恶意攻击和伪装数据的成本大大提高。
因此小程序强制使用 https,还在使用 http 协议的开发者需要尽快对服务器进行升级。
为了方便开发者尽快进行 https 的配置,我们提供了免费的 SSL 证书,点此申请。
小程序可以接入第三方地图 API 吗?
小程序不支持第三方接入,请使用小程序自带的 地图组件 和 地图 API ,该 API 基于高德地图。
web-view 页面跳转 H5 提示“访问受限”/ 报错 / 无法跳转,如何处理?
使用 web-view 嵌套 H5 时,若遇到页面访问受限 / 跳转报错 / 无法跳转等问题,可参考如下解决方案:
获取 H5 页面中所有的域名地址(含静态资源地址,例如图片、.js 文件地址等),全部加入域名白名单中。域名白名单配置路径:支付宝小程序配置后台 > 设置 > 开发设置 > H5 域名配置。
注意事项:
- 请不要使用 scheme 方式进行页面跳转。
- 跳转链接是支付宝钱包客户端某个端内 H5 页面,请不要使用该方式。
- 域名仅支持 https 开头的链接,格式支持英文大小写字母、数字、及“-”,不支持IP地址及端口号。
- 需下载校验文件,并放置于配置域名的根目录下。
- H5 页面不能为重定向页。
- 配置域名后,未重新设置体验版或者推送真机预览导致。
web-view 嵌套的 H5 页面如何跳转到小程序首页?
web-view H5 页面可以使用手动引入 https://appx/web-view.min.js
(此链接仅支持在支付宝客户端内访问),再调用 my.navigateTo 接口即可。
web-view 的标题可以修改吗?
web-view 的标题取决于 H5 的标题,如需修改,请直接修改 H5 的标题内容。但是标题无法隐藏。
支付宝 App 不支持 web-view 组件?
支付宝 App 版本过低导致,升级至最新版本即可。
web-view 不支持个人使用吗?
目前不支持个人使用,仅支持企业使用。
web-view 中引入的 js 有本地文件吗?js 只支持在线访问吗?js 只能使用链接引入不能手动引入吗?
本地没有 js 文件,仅支持在支付宝客户端(小程序)内使用链接 H5 引入 ,不支持下载也不建议引用本地文件。
为何视图容器是不建议超过5个?
一个 web-view 里面不能有太多嵌套,过多嵌套会影响性能,所以一般不建议嵌套超过5层。
web-view 组件支持刷新当前页面吗?
web-view 中没有该接口,可以重新请求数据从而更新页面。
web-view 支持获取手机号吗?支持拨打手机号吗?
不支持,可以从 web-view 跳转到小程序页面去获取。
web-view 是否可以获取用户头像?
不支持。可以通过 button 触发。
小程序内用 web-view 嵌入了 H5 页面,H5 页面如何调用扫一扫?
使用 web-view 与小程序的通信, 唤起小程序的 my.scan。
小程序中可以调用支付宝开放平台的授权吗?
建议通过小程序与 web-view 交互的方式,由小程序获取手机号通过交互传给页面。
为什么每个页面加载过程中都会显示一个加载进度条?
嵌套了 web-view 的页面都有这个进度条,无法去掉。
小程序中没有原生的小程序代码,是否可以通过 web-view 全部实现?
如果 H5 项目中没有调用 jsapi 而且也没有集团域名是可以实现的,但是不建议如此操作,建议开发原生小程序,小程序嵌套 H5 和独立 H5 体验都不如原生小程序。
如何设置 scroll-view 的高度?
不能用百分比进行高度设置,需要使用具体的高度值,建议结合 my.getSystemInfo 获取手机屏幕高度。
开发中的小程序可以测试支付接口吗?
开发中的小程序可以测试支付接口,只需已添加功能(仅对企业小程序开放)并签约后,即可正常使用,需要使用真机进行测试。
小程序是否支持获取用户运动步数的数据?
支持,请参见 运动数据文档。
小程序是否支持富文本和 HTML 渲染?
小程序可使用富文本组件 rich-text 进行渲染,建议安装并使用 mini-html-parser 来转换 HTML String。
my.scan 为什么无法识别小程序二维码的参数?
my.scan 只能识别二维码的码值,无法识别小程序二维码的参数,详情请参见文档 my.scan。
服务器域名为什么没有生效呢?
添加服务器白名单后需要重新打包上传生成体验版。
小程序上传图片可以自动转成 base64(基于 64 个可打印字符来表示二进制数据的方法)吗?
小程序暂不支持图片转成 base64。
my.uploadFile 如何获取服务器返回的错误信息呢?
解决方案:
- 可以通过 success 回调中的 data 参数获取。
- 可以在服务端增加一个日志获取接口。如果上传失败,就请求到日志获取接口获取详细的失败日志。
路由 FAQ
使用 my.reLaunch 跳转的页面为什么不显示底部的 tab 栏?
该 API 是不允许跳转到选项卡页面的。若要跳转到 tab 页面,请使用 my.swithTab 方法。
my.navigateTo 是否支持传参?
支持。
参数规则:路径与参数之间使用 ?
分隔,参数键与参数值用 =
相连,不同参数必须用 &
分隔。
示例:path?key1=value1&key2=value2
使用 my.redirectTo 跳转页面,是否可以去掉左上角的返回按钮?
当页面栈深度为 1 时,使用 my.redirectTo 跳转页面的左上角不会有返回按钮,建议通过 getCurrentPages 方法判断页面栈峰值。或者用户可以直接使用 my.reLaunch 进行跳转,使用 my.reLaunch 进行跳转时,不允许跳转到 tabbar 页面。
小程序多次通过 my.navigateTo 跳转,尝试几次后为何再点击不会跳转了?
小程序规定最多不能超过 5 层页面栈,建议通过 getCurrentPages 方法判断页面栈峰值,超过后用重定向跳转页面。
小程序跳转
小程序A如何跳转到 H5、小程序B、生活号、其他 App?
小程序A跳转 | 是否支持 | 使用限制 | 实现方法 |
---|---|---|---|
H5 | 是 | web-view 内嵌式跳转 H5,仅限企业账号小程序使用。 | - 小程序外跳 H5 页面请参见:my.ap.navigateToAlipayPage - 跳转小程序内嵌式 H5 页面 可通过 web-view H5页面承载组件实现在小程序内打开 H5页面。(仅限企业账号小程序使用) |
小程序B (小程序A、小程序B由同一主体账户创建) |
是 | - 同主体小程序可直接互跳。 - 支付宝客户端 10.1.10 及以上版本支持 |
my.navigateToMiniProgram |
小程序C (小程序A、小程序C由不同一主体账户创建) |
是 | - 不同主体小程序互跳,需对方在 小程序管理后台,设置 > 基础设置 > 小程序相互跳转 中设置为 允许所有小程序跳转 或 指定小程序跳转 - 支付宝客户端 10.1.25 及以上版本支持 |
my.navigateToMiniProgram |
生活号 | 是 | 只能跳转到支付宝官方业务或运营活动页面,部分页面需申请权限。 | my.ap.navigateToAlipayPage |
其他 APP | 否 | - | - |
H5、小程序B、生活号、其他 App 如何跳转到小程序A?
跳转到小程序A | 是否支持 | 使用限制 | 实现方法 |
---|---|---|---|
H5 | 是 | 至少需要上架一次小程序,才能使用该跳转方式测试。没有上架的小程序无法被跳转。 | - 有页面参数,无启动参数时:
- 有页面参数,有启动参数时:
- 详细参数说明请参见下文《H5跳转小程序实现方法参数解释》表格 |
小程序B | 是 | 当小程序A跳转至小程序B,小程序B再跳转到当前小程序A时才会调用成功。 | my.navigateBackMiniProgram |
生活号 | 是 | - | 请参见 生活号管理 |
其他APP | 否 | - | - |
H5 跳转小程序实现方法参数解释
参数名称 | 说明 |
---|---|
appid | 表示要跳转的目标小程序 appId。 |
page | 表示要跳转到目标小程序的具体 page 页面,该值等于 app.json 里面的配置值;如果不带 page 字段,默认跳转到小程序首页。 |
query | 启动参数,内容格式为:“参数名=参数值&参数名=参数值…”。 |
可以在 IDE 中测试两个小程序之间的相互跳转吗?
不可以,在真机上分别预览两个小程序,就可以在真机上测试相互跳转。
my.navigateToMiniProgram 的 extraData 的参数在哪里获取? extraData 是否可以添加多个参数?自定义参数中间使用的什么符号进行拼接?
目标小程序可在 App.onLaunch( )、App.onShow( ) 中获取到这份数据。
extraData 可以添加多个参数,自定义参数都是从这里传入的。
自定义参数中间使用 & 符号进行拼接。
使用 my.ap.navigateToAlipayPage 打开 H5 页面为何提示“参数错误,打开失败”?
可能原因 | 解决方案 |
---|---|
H5 页面链接地址有误。 | 修改错误H5 页面链接。 |
部分支付宝运营、业务页面需申请权限后才能跳转。 | 请点击文档页面后侧 咨询反馈 ,联系人工技术支持 开通跳转权限。 |
小程序支付 / 资金授权
小程序支付会调用后台服务的回调地址通知支付结果吗?
只要在创建订单的时候传了异步通知参数 notify_url
,就会发送异步通知;关于异步通知的详细说明可以点击查看 异步通知 说明。
在 IDE 上调用 my.tradePay 报错 “error2:无效API入参”,如何处理?
my.tradePay 无法在 IDE 模拟器中进行测试,只能在真机上测试,请以真机调试结果为准。
小程序支付无法调起支付,如何处理?
可能原因:
- 传入 my.tradePay 的 tradeNO 参数错误,导致服务端回传的 tradeNO 出错。
- 小程序支付无法在 IDE 模拟器中进行测试。
解决方案:
- 在服务端调用 alipay.trade.create (统一收单交易创建接口),获得支付宝交易号 tradeNO。
注意:
在小程序场景内 alipay.trade.create 接口中的“buyer_id”为必填项,若未传入调式时会出现报错。推荐使用开放平台提供的 服务端 SDK ,并参考以下示例代码(以 Java 代码为例)进行编写。
//实例化客户端
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.create.
AlipayTradeCreateRequest request = new AlipayTradeCreateRequest();
//SDK已经封装掉了公共参数,这里只需要传入业务参数。
request.setBizContent("{" +
"\"out_trade_no\":\"20171115010101001\"," +
"\"total_amount\":0.01," +
"\"subject\":\"Iphone616G\"," +
"\"buyer_id\":\"用户pid\"" +
"}");
try {
//使用的是execute
AlipayTradeCreateResponse response = alipayClient.execute(request);
String trade_no = response.getTradeNo();//获取返回的tradeNO。
} catch (AlipayApiException e) {
e.printStackTrace();
}
- 将获得的 tradeNO 参数传入 my.tradePay 中(设置为固定值),并在真机上进行测试。
资金授权冻结接口无法调起支付,如何处理?
可能原因:
- 传入 my.tradePay 的 orderStr 参数错误,导致服务端回传的 orderStr 出错。
- 资金授权无法在 IDE 模拟器中进行测试。
解决方案:
- 请参考 资金授权 文档 接入指引 > 第五步:调用接口 > 线上资金预授权冻结,获取用于小程序支付的 orderStr 参数。
- 将获得的 orderStr 参数传入 my.tradePay 中(设置为固定值),并在真机上进行测试。
资金授权时, 支付宝预授权报错“订单异常ALIN42683”,如何处理?
报错原因:
OutOrderNo 和 OutRequestNo 重复请求。(OutOrderNo 和 OutRequestNo 参数详情请参见 线上资金授权冻结。)
解决方案:
- 确保 OutOrderNo 和 OutRequestNo 入参在商家系统中唯一 (只传入OutOrderNo 或只传入 OutRequestNo)。
- 检查参数是否按照文档要求设置,建议只传必传参数测试,避免其他参数干扰。
用户授权
小程序如何实现用户授权?
小程序不支持使用拼接授权链接进行授权,建议使用 my.getAuthCode 实现用户授权、用户登录等。
先调用 my.getAuthCode,再调用my.getOpenUserInfo会出现两次授权窗口,是否有方法可以实现只出现一个授权弹框?
正常获取会员基础信息是需要弹窗两次进行授权确认的,一次是 my.getAuthCode 获取用户授权码的授权框, 一次是 my.getOpenUserInfo 中获取用户基础信息的授权框。
my.getAuthCode 使用静默授权方法(令 scopes 为 auth_base)即可实现只出现一个授权弹框。示例代码如下:
my.getAuthCode({
scopes: ['auth_base'],
success: (res) => {
my.alert({
content: res.authCode,
});
},
});
如何打印 my.getAuthCode 获取到的 authCode?
在 IDE 中使用 console.log,在 console 里打印即可。示例代码如下:
my.getAuthCode({
scopes: 'auth_user',
success: (res) => {
console.log(res.authCode);
my.alert({
content: res.authCode,
});
},
});
效果如下图所示:
为什么要使用用户授权 my.getAuthCode API?
开发者在支付宝开放平台上读写用户信息,均需经过用户许可。支付宝开放平台的用户授权基于国际标准的 OAuth2.0 授权机制。基于此机制,使用 my.getAuthCode API 得到用户授权后,方可进行获取用户信息、给用户发放会员卡等操作。
为什么不允许在小程序首屏使用用户授权 API?
为了创造更良好的支付宝小程序用户体验,在小程序的首屏引导用户授权是不被允许的。需要在用户充分了解小程序的业务内容后再引导用户授权,建议将小程序授权环节放在业务流程中。
用户的 userID 可以通过用户授权 API 获取吗?
不可以,userID 需要在服务器端调用 alipay.system.oauth.token 获取。
获取会员基础信息
为什么在小程序开发者工具(IDE)无法中调用my.getOpenUserInfo?(提示:"appxrpc 暂不支持,请在真机调试")
my.getOpenUserInfo API 用于获取支付宝会员基础信息,所以只能在真机上调试,无法在 IDE 中调试。
“获取会员信息”、“获取会员基础信息”两个功能包有什么区别?
为提高小程序开发效率,“获取会员信息”功能包已升级为“获取会员基础信息” 功能包。
自 2019 年5月25日 起,已不再支持添加“获取会员信息”功能包。
已添加“获取会员信息”功能包的小程序,在使用“获取会员基础信息”功能之前,仍需添加“获取会员基础信息”功能包。
调用 alipay.user.info.share 报错“ISV 权限不足”如何处理?
alipay.user.info.share 是“获取会员信息”功能包中使用的 API。“获取会员信息”功能包已于2019 年5月25日升级,在此日期之前未签约“获取会员信息”功能包的小程序无法再调用 alipay.user.info.share,请使用“获取会员基础信息”功能包。
调用 my.getOpenUserInfo 报错 "ISV权限不足"如何处理?
“获取会员信息”功能包已下架,若之前创建的应用已添加了“获取会员信息”的功能包则能正常调用接口,未添加的则无法再添加此功能。 新创建的应用请使用 获取会员基础信息 my.getOpenUserInfo 接口。
- 在小程序开发管理后台的 功能列表 中,点击 添加功能。
- 添加 获取会员基础信息 功能包。
为什么接入“获取会员基础信息”功能并调用成功后,在获取用户信息时获取不到用户的昵称?
部分支付宝用户没有设置昵称,故获取不到用户昵称。
小程序可以同时获取手机号、头像、昵称等公开信息吗?
不能在同一个弹框中同时获取会员手机号和头像、昵称。
可分别获取会员手机号,和获取用户头像及昵称。
详情请参见:
“获取会员基础信息” 可以获取支付宝用户的 user_id 吗?
不可以。获取支付宝用户的 user_id 需要在服务器端调用 alipay.system.oauth.token 。
“获取会员基础信息”可以获取用户身份证、真实姓名等信息吗?
不可以。“获取会员基础信息”只能获取用户头像、昵称、性别、所在地区等信息。
小程序获取会员基础信息时弹出两次授权窗,如何处理?
正常获取会员基础信息需要弹窗两次进行授权确认:一次是 my.getAuthCode 获取用户授权码的授权框, 另一次是 my.getOpenUserInfo 中获取用户基础信息的授权框。
my.getAuthCode 使用静默授权方法(令 scopes 为 auth_base)即可实现只出现一个授权弹框。示例代码如下:
my.getAuthCode({
scopes: ['auth_base'],
success: (res) => {
my.alert({
content: res.authCode,
});
},
});
获取会员手机号
调用 my.getPhoneNumber,报错“无效的授权关系”,如何处理?
用户主动触发才能发起获取手机号请求,不能由 API 直接获取用户手机号,需使用 button 组件 的“点击”动作来触发操作。
操作流程:
- 将 button 组件 open-type 的值设置为 getAuthorize。
示例代码:
<button a:if="{{canIUseAuthButton}}" open-type="getAuthorize"
onGetAuthorize="onGetAuthorize" onError="onAuthError" scope='phoneNumber'>
授权手机号
</button>
Button属性说明:
属性 | 说明 |
---|---|
open-type | 此处设置为 getAuthorize ,用于授权。 |
scope | 此处设置为 phoneNumber ,手机号码。 |
onGetAuthorize | 授权成功回调(在回调里可以调用获取信息的接口)。 |
onError | 授权失败回调(包括用户拒绝和系统异常)。 |
- 用户点击并同意授权后,可以通过 my.getPhoneNumber 获取到支付宝服务器返回的加密数据, 然后在第三方服务端结合签名算法和AES密钥进行解密获取手机号,方法详见 敏感信息加解密方法。
my.getPhoneNumber({
success: (res) => {
let encryptedData = res.response;
my.httpRequest({
url: '你的后端服务端',
data: encryptedData,
});
},
fail: (res) => {
console.log(res);
console.log('getPhoneNumber_fail');
},
});
调用 my.getPhoneNumber,报错“ISV权限不足”,如何处理?
报错“ISV权限不足”是由于未添加“获取会员手机号”功能包。请至小程序管理后台添加功能包。
1.在 小程序开发管理后台 的 功能列表 中,点击 添加功能。
2.添加 获取会员手机号 功能包。
3.点击 用户信息申请。
4.在 申请权限 中申请用户手机号。
5.填写申请原因、使用场景等信息,提交申请,等待审核。
返回错误码 20000/40001/40002/40003,如何处理?
错误码 | 错误详情 | 解决方案 |
---|---|---|
20000 | 系统繁忙 | 稍后再试。 |
40001 | 应用未设置默认签名类型 | 在 小程序开发管理后台 > 设置 > 开发设置 中,设置 支付宝公钥 和 应用网关。 |
40002 | 加密异常 | 在 小程序开发管理后台 > 设置 > 开发设置 中,设置 aes 秘钥,aes 相关信息可参见 内容加密接入指引。 |
40003 | 无效的授权关系 | 用户未同意授权,或授权已失效,可稍后再试。 |
返回的数据是密钥和签名,并没有获取到手机号,怎么回事?
my.getPhoneNumber 获取的是支付宝服务器返回的加密数据。
在第三方服务端结合签名算法和 AES 密钥进行解密可获取手机号,方法详见 敏感信息加解密方法。
服务端解密后的明文示例如下:
{
"code": "10000",
"msg": "Success",
"mobile": "18818181818"
}
其他开放能力
小程序登录时为什么会提示无效的 APPID?
请核实 getAuthCode 的 APPID 是否和服务端调用唤取 token 接口的 APPID 一致。
基础信息
个人可以创建支付宝小程序吗?
个人支付宝账号可以创建支付宝小程序,详情请参见 开发者入驻。
如何开发支付宝小程序?
小程序的开发流程如下图所示:
1. 注册与入驻
企业和个人均可成为支付宝小程序开发者,详情请参见 开发者入驻。
2. 创建一个小程序
- 登录 蚂蚁金服开放平台,在 开发者中心 > 我的应用 > 小程序 中创建小程序即可。
-
填写小程序基础信息。
请准确填写小程序的基础信息,基础信息不允许包含违禁词,应用信息修改规则如下:- 上架前,应用信息均可修改,不限次数。
- 上架后,应用名/应用英文名将不允许修改; 应用简介、应用描述、应用类目这三个信息在新版本提审时每个自然月可修改 5 次,其他信息在新版本提审时可修改。
- 获取小程序 APPID 。
小程序创建成功后,可在小程序详情页查看 APPID,然后即可进入小程序开发流程。
更多相关信息请参见 创建小程序。
3. 开发小程序
下载小程序开发者工具(IDE),查看小程序开发文档与设计规范,使用丰富的快速示例、开放能力。
相关链接:
4. 审核发布
小程序提交审核,通过后可发布上架。
相关链接:
5. 监测数据与小程序运营
上架后的小程序可在丰富的使用场景中进行数据监测,并开展相关运营活动。
相关链接:
开发小程序需要什么样的技术基础?
支付宝小程序的开发过程相对简单,只需了解简单的 HTML、CSS、JavaScript 语法即可轻松接入支付宝小程序前端开发。
以下简单介绍支付宝小程序的语法规则。
- AXML:AXML 是小程序框架设计的一套标签语言,用于描述小程序页面的结构,与网页编程中的 HTML 语法类似。更多信息请参见 AXML 介绍。
- ACSS:ACSS 是一套样式语言,用于描述 AXML 的组件样式,决定 AXML 的组件的显示效果。为适应广大前端开发者,ACSS 同系统 CSS 规则完全一致,100% 可以用。同时为更适合开发小程序,对 CSS 进行了扩充。更多信息请参见 ACSS 语法参考。
- SJS:SJS(safe/subset javascript)是小程序一套自定义脚本语言,可以在 AXML 中使用其构建页面结构。SJS是 JavaScript 语言的子集,与 JavaScript 是不同的语言,其语法并不与 JavaScript 一致,请勿将其等同于 JavaScript。更多信息请参见 SJS 介绍。
创建、审核、发布、版本管理
一个支付宝账号可以创建多少个小程序?
一个账号下最多可以创建 10 个小程序,每个小程序都有唯一的 APPID;未提交过审核的小程序可以删除,删除的小程序不在计数范围。
小程序下架后,名字会占用吗?
小程序名称如果因为知识产权侵权被下架处罚后,名称即被释放,不会被保留或占用。
小程序版本如何更新?
重新上传新版本的小程序,提交审核。审核通过后,把已上架的旧版本改为“待上架”,把新版本设置为“已上架”即可更新小程序版本。
如何修改小程序名称?
- 小程序未上架
小程序未上架前,可点击小程序管理后台详情页左侧菜单 应用信息,在页面中点击右侧 编辑 按钮,可直接修改小程序的应用名称,修改次数不限制;修改后提交版本审核时,按修改后的信息进入审核流程。
- 小程序已上架
小程序审核通过后,无法直接修改名称信息,需要走特殊流程申请修改:拨打用户服务电话 95188(8:00-24:00) 或咨询在线客服,说明小程序修改名称的述求,审核通过后(一般审核时间为2个工作日),名称即修改成功。
小程序审核未通过,怎么办?
若小程序审核未通过,可参见 小程序审核驳回常见类型 进行驳回原因排查,并重新提交审核。
更多审核规范相关信息,可参见:
框架相关
小程序可以自定义右上角胶囊菜单样式吗?
小程序右上角胶囊菜单不可自定义成其他样式。
小程序中如何用相对路径引入图片?
小程序内相关资源图片需要放在 image 文件夹下面,否则不会将相关图片打包进小程序内,将导致小程序运行时引入相对路径的图片失败。
如何设置小程序编译基础库的版本?
在不调整代码的情况下,可以在后台设置最低基础库版本解决低版本兼容问题。如果钱包版本过低,则钱包会提醒用户升级钱包。
登录 支付宝小程序管理中心,点击 小程序名 > 设置 > 基础设置 > 最低基础库版本,点击 设置 按钮,选择基础库版本进行设置。基础库和钱包版本对比,请参考 基础库版本分布。
注:推荐使用设置最低基础库版本去解决低版本兼容问题,选择版本时尽量选择用户占比高的版本作为最低版本。
如何调用 page 的 data 参数值?
在 page 方法中使用 this.data.参数名 的格式调用。
开发者工具(IDE)
如何查看 IDE 上选择的基础版本库?
在 IDE 上运行小程序时,会在调试器中打印类似此类基础库信息: ap/SDKVersion: 1.14.2
,也可以调用 my.SDKVersion 获取基础库版本信息。
如何更改 IDE 的基础版本库?
可以通过升级 IDE 版本,来实现基础库版本的升级;若不升级 IDE则无法进行基础库版本的升级。点击此处 查看最新 IDE 版本。
上传时报错“文件路径长度: 102(最大允许100个字符),请调整后重新编译”?
这通常是 npm 文件路径过长造成的问题。解决方案:在 npm 包管理工具中改用 yarn:tnpm i --by=yarn
上传小程序时,文件包尺寸限制?
建议控制小程序文件包尺寸在 2M 之内。如果文件包太大,可以使用 分包加载 功能。