flutter 的 fluwx插件 ios配置调起微信

一、打开苹果开发者后台

flutter 的 fluwx插件 ios配置调起微信_第1张图片

找到对应的bundleId,点进去,勾选Associated Domains

flutter 的 fluwx插件 ios配置调起微信_第2张图片

二、准备apple-app-site-association文件,注意:文件不能有任何后缀,包括.json

文件内容如下

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "teamID.应用BundId",
                "paths": [ "/app/*" ]
            }
        ]
    }
}

其中teamID在苹果账号中查找https://developer.apple.com/account

flutter 的 fluwx插件 ios配置调起微信_第3张图片

apple-app-site-association文件文件放的位置网上有很多文章说明,这里不做赘述

三、Xcode配置

1、设置Associated Domains

将域名写入 Domains,格式如下applinks:你的域名,不需要https

flutter 的 fluwx插件 ios配置调起微信_第4张图片

2、Xcode Info ——> URL Types 展开点击加号

Identifier写入 weixin
URL Schemes写入微信开放平台移动应用中绑定的appID

3、Xcode Info ——> Custom IOS Target Properties ——> LSApplicationQueriesSchemes张开添加item项

 添加value为weixin的项
 添加value为wechat的项
 添加value为weixinULAPI的项

4、Xcode ——> Target ——> Build Settings 搜索Other Linker Flags 点击加号

添加 -ObjC-all_load

5、AppDelegate.m 或者 SceneDelegate.h 文件(重要‼️)

引入#import

  • 首先,微信唤起App,App一定会收到系统回调。请确认系统回调是Scheme回调还是Universal Links回调。
  • 如果是Scheme回调,请检查是否走了UISceneDelegate(XCode11构建的项目),或是UIApplicationDelegate。它们的回调方法分别是
 - (void)scene:(UIScene *)scene openURLContexts:(NSSetUIOpenURLContext *> *)URLContexts;

 - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionaryUIApplicationOpenURLOptionsKey, id> *)options;
  • 如果是Universal Links回调,同样也检查是否走了UISceneDelegate(XCode11构建的项目),或是UIApplicationDelegate。它们的回调方法分别是
- (void)scene:(UIScene *)scene continueUserActivity:(NSUserActivity *)userActivity

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArrayidUIUserActivityRest
oring>> * __nullable restorableObjects))restorationHandler
  • 因为考虑兼容旧版本微信,因此无论Scheme或Universal Links回调都必须处理。 在重写回调方法后,需要分别调用WXApi的handleOpenUrl和handleOpenUniversalLink方法
    示例:
- (voidscene:(UIScene *)scene continueUserActivity:(NSUserActivity *)userActivity {
        return [WXApi handleOpenUniversalLink:userActivity delegate:self


- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:void(^)(NSArrayidUIUserActivityRest
oring>> * __nullable restorableObjects))restorationHandler {
return [WXApi handleOpenUniversalLink:userActivity delegate:self];

四、微信开放平台配置

1、进入开放平台添加应用

2、申请接口信息分享到朋友圈、发送给朋友、微信登录等接口信息

3、修改开发信息,IOS平台、IPad平台的Universal Links配置

五、flutter项目启动配置

universalLink与微信后台配置的相同

    await fluwx.registerWxApi(
        appId: "微信开放平台移动应用的AppId",
        doOnAndroid: true,
        doOnIOS: true,
        universalLink: "配置Xcode的域名(https://xxxx.com/)"

你可能感兴趣的:(ios,flutter,微信)