插件环境 cordova-android >= 7.0.0
请到微信开放平台 开发者应用登记页面 进行登记,登记并选择移动应用进行设置后,将该应用提交审核,只有审核通过的应用才能进行开发。
cordova plugin add https://github.com/waliu/cordova-plugin-wechat-chenyu --variable WECHAT_APPID=[your key]
- 分享
- 支付
- 登录
- 打开小程序
//例如:
window["WeChat"].share(option, (res) => { }, (error) => { });
- window["WeChat"].share(option,successCallback, failedCallback);
- window["WeChat"].sendPaymentRequest(option,successCallback, failedCallback);
- window["WeChat"].auth(option,successCallback, failedCallback);
- window["WeChat"].openMiniProgram(option,successCallback, failedCallback);
- window["WeChat"].onResp(successCallback);
所有方法的调用都可以看示例文档===>
示例文档
完整的示例代码(基于ionic3编写)===>
示例代码
任何方法都会返回一个正确的结果(successCallback)或者一个错误的反馈(failedCallback)
参数 | 类型 | 说明 |
---|---|---|
option | Option | 方法所需的参数 |
successCallback | Function | 方法正确运行会触发 successCallback 函数 |
failedCallback | Function | 方法错误运行会触发 failedCallback 函数 |
- 分享方法
window["WeChat"].share(option,successCallback, failedCallback)
option
参数 | 类型 | 说明 |
---|---|---|
message | mediaObject | 分享的对象 |
scene | number | 分享的场景 |
type | string | 分享的类型 |
- 支付方法
window["WeChat"].share(option,successCallback, failedCallback)
option
参数 | 类型 | 说明 |
---|---|---|
partnerId | string | 微信支付分配的商户号 |
prepayId | string | 微信返回的支付交易会话ID |
nonceStr | string | 随机字符串,不长于32位。推荐随机数生成算法 |
timestamp | string | 时间戳,请见接口规则-参数规定 |
packageValue | string | 暂填写固定值Sign=WXPay |
sign | string | 签名,详见签名生成算法注意:签名方式一定要与统一下单接口使用的一致 |
- 微信登录
window["WeChat"].auth(option,successCallback, failedCallback)
参数 | 类型 | 说明 |
---|---|---|
scope | string | 应用授权作用域,如获取用户个人信息则填写 snsapi_userinfo |
state | string | 用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止 csrf 攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加 session 进行校验 |
- 打开小程序
window["WeChat"].openMiniProgram(option,successCallback, failedCallback);
参数 | 类型 | 说明 |
---|---|---|
userName | string | 填小程序原始id |
path | string | 拉起小程序页面的可带参路径,不填默认拉起小程序首页,对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"。 |
miniprogramType | number | 可选打开 开发版,体验版和正式版 |
- 订阅返回值
window["WeChat"].onResp((e) => {});
当你 登录、支付、分享、打开小程序、他都会返回一个值,标记你是否成功操作 window["WeChat"].onResp(option,successCallback, failedCallback);
参数 | 类型 | 说明 |
---|---|---|
successCallback | Function | 当调用某个方式时,返回app时就会触发该方法 |
try {
window["WeChat"].onResp((e) => {
console.log(e);
if ((e["errCode"] == -6 && (e["pluginType"] == "Share" || e["pluginType"] == "WXLaunchMiniProgram" || e["pluginType"] == "Auth")) || e["errCode"] == -1 && (e["pluginType"] == "Pay")) {
this.presentToast("签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等")
}
//登录反馈
if (e["errCode"] == -4 && e["pluginType"] == "Auth") {
this.presentToast("登录被拒绝!")
}
if (e["errCode"] == 0 && e["pluginType"] == "Auth") {
this.presentToast("登录成功")
}
//支付反馈
if (e["errCode"] == -2 && e["pluginType"] == "Pay") {
this.presentToast("无需处理。发生场景:用户不支付了,点击取消,返回APP。")
}
if (e["errCode"] == 0 && e["pluginType"] == "Pay") {
this.presentToast("展示支付成功的界面!")
}
//分享反馈
if (e["errCode"] == 0 && e["pluginType"] == "Share") {
this.presentToast("用户已经完成分享了,无法判断是成功分享,还是取消的分享!")
}
//打开小程序反馈
if (e["errCode"] == -3 && e["pluginType"] == "WXLaunchMiniProgram") {
this.presentToast("小程序启动失败 (错误码:-3)")
}
})
} catch (e) {
console.warn("请在Android 或者ios 上运行")
}
QQ群 390736068
- 图片识别
- 语音识别
- 语音合成
- 微信内网页跳转APP功能(可跳转到指定app界面)
- 返回键问题
- 当你打开微信界面时,你点击返回。app可能会被关闭。
- 原因:因为cordova app 默认设置为点击一次物理返回按键 app就会关闭。
- 解决方案为 就是监听cordova 物理按键,阻止关闭代码如下。
- js文档
- ionic2及以上文档
//js 阻止app关闭
document.addEventListener("backbutton", onBackKeyDown, false);
function onBackKeyDown(e) {
e.preventDefault();
alert('Back Button is Pressed!');
}
//ionic2 + 阻止app关闭
platform.registerBackButtonAction(() => {
console.log("点击了返回按钮")
return false;
});
平台 | 示例图片 |
---|---|
js | |
ionic |
- 打开微信会闪一下 并且code提示为-6(分享)或者为-1(支付),代表签名或者包名有问题。
- 检查包名是否和微信开放平台一致
- 检查签名是否和微信开放平台一致