返回
微信拉起小程序源码修改之应用解惑
前端
2023-11-07 17:25:32
拉起小程序:React Native 集成微信小程序支付
小程序与 App 关联
首先,让我们将小程序与 App 关联起来。登录微信公众平台,前往小程序管理页面。点击“开发”->“开发设置”->“关联关系”->“关联原生 App”。按照提示填写 App 的名称、包名和签名等信息即可完成关联。
修改源码
现在,我们需要修改微信小程序 SDK 的源码来启用拉起小程序的功能。下载 react-native-wechat
库并找到 lib/ios/RCTWXApi.m
文件。找到以下代码:
- (void)sendReq:(WXBaseReq *)req
{
if ([req isKindOfClass:[WXLaunchMiniProgramReq class]]) {
// 拉起小程序
WXLaunchMiniProgramReq *launchMiniProgramReq = (WXLaunchMiniProgramReq *)req;
BOOL b = [WXApi sendReq:launchMiniProgramReq];
} else {
// 发送其他请求
[WXApi sendReq:req];
}
}
将这段代码修改为:
- (void)sendReq:(WXBaseReq *)req
{
if ([req isKindOfClass:[WXLaunchMiniProgramReq class]]) {
// 拉起小程序
WXLaunchMiniProgramReq *launchMiniProgramReq = (WXLaunchMiniProgramReq *)req;
// 修改 launchMiniProgramReq.miniProgramType
launchMiniProgramReq.miniProgramType = WXMiniProgramTypeRelease;
// 修改 launchMiniProgramReq.miniProgramPath
launchMiniProgramReq.miniProgramPath = @"pages/index/index";
BOOL b = [WXApi sendReq:launchMiniProgramReq];
} else {
// 发送其他请求
[WXApi sendReq:req];
}
}
使用方法
修改源码后,我们就可以在 React Native 项目中使用以下代码拉起小程序:
import WXApi from 'react-native-wechat';
const launchMiniProgram = async () => {
const req = new WXLaunchMiniProgramReq();
req.miniProgramType = WXMiniProgramTypeRelease; // 正式版
req.miniProgramPath = 'pages/index/index'; // 小程序路径
await WXApi.send(req);
};
常见问题解答
1. 拉起小程序失败,提示“未找到指定小程序”
- 确保小程序与 App 已关联。
- 检查小程序路径是否正确。
2. 拉起小程序后,页面空白
- 检查小程序代码中是否导入了必要的组件。
- 确保小程序已发布至正式版。
3. 如何拉起非正式版小程序?
- 在
launchMiniProgramReq.miniProgramType
中设置WXMiniProgramTypeTest
。 - 在
launchMiniProgramReq.miniProgramPath
中设置测试版本的小程序路径。
4. 如何在拉起小程序后传递参数?
- 使用
launchMiniProgramReq.extMsg
属性传递参数。
5. 如何在小程序端处理来自 App 的参数?
- 在小程序的
onLaunch
方法中使用wx.getLaunchOptionsSync()
方法获取参数。