Cordova 微信分享插件使用详记

自从前年接触混合开发以来就非常看好 Cordova, 唯一遇到的比较大的问题就是本地化的无法解决, 直到今天公司重新启动关于混合app的开发和应用, 不可避免的有要重拾这些问题, 刚开始本来选择一些国内的集成平台, 开发到中期果断放弃, 原因只能呵呵了.. 本抱着如果一个星期不能解决分享的问题就滚回去写原生的, 没想到在我之前已经有大大封装好了分享库, 免去了自己写的风险, 这里万分感谢.

获取微信APP ID

  1. 到微信公众平台注册一个开发者账号 https://open.weixin.qq.com/

  2. 管理中心

  3. 创建移动应用

  4. 填写基本信息, 下一步

  5. 选择需要支持的平台, 填写资料(Ps: 审核完了后是可以修改的)
    iOS:
    Bundle ID: [包名]
    Android:
    应用签名: [下面会详细说明如何获取]
    应用包名: [包名]

  6. 确认提交审核

安装说明

插件地址: xu-li/cordova-plugin-wechat

安装

1
2
3
4
cordova create test com.huyaohui.test test
cordova plugin add https://github.com/xu-li/cordova-plugin-wechat --variable wechatappid=[微信应用id]
cordova platform add ios android
cordova build ios android

Ps: 需要注意的是需要先安装插件在添加平台, 要不然插件不会被build到平台中去.

使用说明

详细说明: xu-li/cordova-plugin-wechat-example

简单使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 检查是否安装微信
Wechat.isInstalled(function (installed) {
console.log("Wechat installed: " + (installed ? "Yes" : "No"));
}, function (reason) {
console.log("Failed: " + reason);
});

// 简单分享文字
Wechat.share({
text: "This is just a plain string",
scene: Wechat.Scene.TIMELINE // share to Timeline
}, function () {
console.log("Success");
}, function (reason) {
console.log("Failed: " + reason);
});

iOS 分享

iOS 分享一般在安装插件的时候把APP ID填写好就没问题了, 就不多说了. 重点说下安卓

Android 分享

因为 Android 的开放性, 可能是出于安全考虑, 微信 SDK 除了核对应用包名外, 还会核对应用签名, 所以调试 Android 时, 需要保证应用签名与提交审核的签名一致.

首先, 应用务必要通过审核. 至于审核后修改签名是否立即生效, 我没有做验证.

获得最终可用的应用签名的前提是, 应用是以自己的生成的 keystore 签名的, 所以第一个问题应该是, 如何生成自己的 keystore.

JDK 有一个叫 keytool 的工具可以做这个, 一般情况下既然 Cordova 能正常用, 默认 JDK 已经加入 PATH 了, 那么可以直接运行下面的命令.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# input: 
keytool -genkey -alias [别名] -keyalg RSA -validity 20000 -keystore [文件名.keystore]

# output:
# 安装提示输入就行了
Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]: make
What is the name of your organizational unit?
[Unknown]: chenjin
What is the name of your organization?
[Unknown]: chenjin
What is the name of your City or Locality?
[Unknown]: nanchang
What is the name of your State or Province?
[Unknown]: jiangxi
What is the two-letter country code for this unit?
[Unknown]: cn
Is CN=make, OU=chenjin, O=chenjin, L=nanchang, ST=jiangxi, C=cn correct?
[no]: yes

Enter key password for <make>
(RETURN if same as keystore password):
Re-enter new password:

签名: 可以使用360签名工具签名, 使用比较简单, 直接看工具附带的文档: yunpan.cn

最后安装签名工具获取签名: mobileresearch/weibo_android_sdk
安装完成后执行, 输入自己应用的包名, 就可以获得一串签名了. 小心仔细地把签名填写到微信平台 Android 下的相关位置并提交.

Ps: 如果你在开放平台上填写的签名和你的包名不一致的话会出现闪退的问题, 将无法使用微信分享.

参考资料

  1. xu-li/cordova-plugin-wechat
  2. vilic/cordova-plugin-wechat
  3. Android-微信-SDK-签名问题