nativescript-wechat-login
NativeScript 的微信登录插件。
npm i --save nativescript-wechat-login

NativeScript 微信登录插件

npm npm npm

使用此插件,您可以在您的 APP 中实现微信登录功能。您可以在此处了解更多详情:这里

安装

tns plugin add nativescript-wechat-login

如果您正在使用 NativeScript 5.4.X,可以查看此分支

Android

如果安装成功,则应在您的 srcapp(根据 nsconfig.jsonwebpack.config.js 中的 appPath 值)目录中创建 wxapi.WXEntryActivity.android.ts 文件,并包含您的 APP ID。如果未成功创建,则您需要手动创建该文件。您可以从此处获取该文件的代码。在这种情况下,您需要将 YOUR_APP_ID 替换为您的应用 ID。

如果您在 srcapp 目录中没有 wxapi.WXEntryActivity.android.ts 文件,那么 Android 不会从微信接收通知。

Webpack

您需要在 webpack.config.js 文件中添加 wxapi.WXEntryActivity.android.ts,以便 Android 运行时可以生成适当的 Java 类。请查看示例 custom-webpack.config.js 文件。您可以在此处了解详细信息

如果您正在使用 NativeScript 6.4.0 或更高版本,则可以创建自定义 custom-webpack.config.js 文件并将其添加到您的 nsconfig.json 文件中,如下所示

custom-webpack.config.js

const webpackConfig = require("./webpack.config");
const path = require("path");

module.exports = env => {

env = env || {};

const cnf = webpackConfig(env);

env.appComponents = env.appComponents || [];
env.appComponents.push(path.resolve(cnf.context, "wxapi.WXEntryActivity.android.ts"));

const config = webpackConfig(env);

return config;
}

nsconfig.json

...
"webpackConfigPath": "./custom-webpack.config.js"

对于 NativeScript 6.3.0 或更早版本,请手动编辑 webpack.config.js

const appComponents = [
"tns-core-modules/ui/frame",
"tns-core-modules/ui/frame/activity",
resolve(__dirname, "src/wxapi.WXEntryActivity.android.ts") // or resolve(__dirname, "app/wxapi.WXEntryActivity.android.ts") depends on nsconfig.json or webpack.config.js file's appPath value.
];

iOS

App_Resources/iOS 位置打开您的 Info.plist 文件,并添加以下行

<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>weixin</string>
<key>CFBundleURLSchemes</key>
<array>
<string>WECHAT_APP_ID</string>
</array>
</dict>
</array>

WECHAT_APP_ID 替换为您的微信 App ID。请查看示例项目 demo/App_Resources/iOS/Info.plist

用法

有关详情,您可以查看示例项目。

在您的 main.tsapp.ts 中,需要导入带有微信 App ID 的 initWechatSdk(WECHAT_APP_ID) 方法。

....
import { initWechatSdk } from "nativescript-wechat-login";

initWechatSdk("wxd930ea5d5a258f4f");

在其他任何页面上

....
import { WechatLogin } from "nativescript-wechat-login";
import * as app from "tns-core-modules/application";

现在调用一个方法

let wechat = new WechatLogin();

if (wechat.isWechatInstalled()) {
wechat.doLogin("nativescript_demo");
} else {
console.log("wechat isn't installed")
}

您将收到来自 wxApiResponse 事件的响应。因此,您可以像这样注册该事件

app.on('wxApiResponse', function(res){
console.dir(res) // you will get wechat notification here.
console.dir(res.object) // information from wechat
}, this);

参考

https://open.wechat.com/cgi-bin/newreadtemplate?t=overseas_open/docs/mobile/login/guide#login_guide

https://github.com/aaronbruckner/wechatAndroidLoginDemo

许可

Apache License Version 2.0,2004 年 1 月