问题描述
最近有这样一个业务场景,做一个微信发票导入的功能,因为uni-app不支持类似的原生功能,所以需要自己封装原生插件。
实现
在封装原生插件时,新建了一个WxModuleProxy
类实现UniPluginProtocol
来监听系统事件,实现WXApiDelegate
来监听微信的回调,相关代码如下
- (BOOL)application:(UIApplication *_Nullable)application didFinishLaunchingWithOptions:(NSDictionary *_Nullable)launchOptions {
// 向微信注册
[WXApi registerApp:appId universalLink:link];
return YES;
}
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler {
return [WXApi handleOpenUniversalLink:userActivity delegate:self];
}
- (void)onResp:(BaseResp *)resp {
//业务逻辑
}
运行后发现,可以跳转到微信也可以选择发票,但是选择完毕之后WxModuleProxy
中的continueUserActivity
和onResp
方法并没有触发,无法将发票信息带回到app。后来查询需要在AppDelegate.m
中重写continueUserActivity
方法,添加如下代码:
//@Summary:通用链接
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
[PDRCore handleSysEvent:PDRCoreSysEventContinueUserActivity withObject:userActivity];
restorationHandler(nil);
return YES;
}
至此,终于可以运行成功,并且也可以在onResp中拿到发票信息。完结撒花
不对? 这好像是个问答帖
在我打成原生插件用自定义基座运行时,又又又又不行了~~~ 我估计是自定义基座中AppDelegate
的continueUserActivity
没有重写导致,我该怎么办,只能离线打包吗???,还是官方有别的解决办法
2dfAs但是
遇到了相同的使用场景 插件能借用下吗 有偿
2022-12-21 10:53