harmony_fluwx 集成微信服务(2)
fluwx 链接:https://gitee.com/almost777/fluwx
接入功能
初始化
注册 WxAPI
registerWxApi(appId: "wxd930ea5d5a228f5f",universalLink: "https://your.univerallink.com/link/");
复制代码
登录
sendWeChatAuth
的目的是为了获取 code,拿到了 code 才能进行微信登录,可以通过官方文档查看具体流程。
sendWeChatAuth(scope: "snsapi_userinfo", state: "wechat_sdk_demo_test");
复制代码
为什么不支持获取用户信息?获取用户信息应该后端来做,即使没有后端,你也可以在 dart 层自己实现.
从 H5 启动 app
Fluwx 支持从<wx-open-launch-app>
启动你的 app, 并且支持传递extInfo
给你的 app.对于 Android 来说,你要在AndroidManifest.xml
中给你的Activity
加上一个标签:
<intent-filter>
<action android:name="${applicationId}.FlutterActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="${applicationId}"
android:path="/"
android:scheme="wechatextmsg" />
</intent-filter>
复制代码
与此同时,你还需要在需要在 application 中加上<meta-data>
,把你的 appId 放进去:
<meta-data
android:name="weChatAppId"
android:value="12345678" />
复制代码
如果你想把extInfo
传给 Flutter, 你要在MainActivity
加上如下代码:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
//If you didn't configure WxAPI, add the following code
WXAPiHandler.setupWxApi("wxd930ea5d5a258f4f",this)
//Get Ext-Info from Intent.
FluwxRequestHandler.handleRequestInfoFromIntent(intent)
}
复制代码
如果你想自定义你的调用逻辑, 你需要在 application 中加上<meta-data>
:
<meta-data
android:name="handleWeChatRequestByFluwx"
android:value="false" />
复制代码
然后, 自己实现 FluwxRequestHandler.customOnReqDelegate
.
兼容 Android 11
请在你的应用的AndroidManifest.xml
中添加以下 queries:
<queries>
<intent>
<action android:name="${applicationId}.FlutterActivity" />
</intent>
<intent>
<action android:name="android.intent.action.VIEW" />
<data
android:host="${applicationId}"
android:path="/"
android:scheme="wechatextmsg" />
</intent>
</queries>
复制代码
IOS
请在你的AppDelegate
中主动注册WXApi
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//向微信注册
[[FluwxDelegate defaultManager] registerWxAPI:@"" universalLink:@""];
return YES;
}
复制代码
如你想主动获取从网页传进来的值 ,请主动调用fluwx.getExtMsg()
。
评论