nativeScript-wechat-login-knotes
为 NativeScript 开发的微信登录插件。它基于 https://github.com/jibon57/nativescript-wechat-login.git 进行了修改,并修复了通用链接的问题。
npm i --save nativescript-wechat-login-knotes

NativeScript 微信登录插件

npm npm npm

使用此插件,您可以在您的应用程序中实现微信登录功能。您可以在此了解更多详情。

安装

tns plugin add nativescript-wechat-login-knotes

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

Android

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

如果您在 srcapp 目录中没有 wxapi.WXEntryActivity.android.ts 文件,则 Android 将无法从微信接收通知。

Webpack

您需要将 wxapi.WXEntryActivity.android.ts 添加到您的 webpack.config.js 文件中,以便 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, UNIVERSAL_LINK) 方法。

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

initWechatSdk("wxd930ea5d5a258f4f", "https://www.your.app.universal.link");

在任何其他页面

....
import { WechatLogin } from "nativescript-wechat-login-knotes";
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 版本 2.0,2004 年 1 月