ball 项目提交
This commit is contained in:
@@ -0,0 +1,125 @@
|
||||
#import "iOSBridgePlugin.h"
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <EventMark.h>
|
||||
|
||||
@implementation iOSBridgePlugin
|
||||
|
||||
+ (void)openURL:(NSString *)url1
|
||||
{
|
||||
// 使用UIApplication的openURL方法打开外部浏览器
|
||||
NSURL *url = [NSURL URLWithString:url1];
|
||||
if (url && [[UIApplication sharedApplication] canOpenURL:url]) {
|
||||
// 使用iOS 10及以上版本推荐的方法
|
||||
[[UIApplication sharedApplication] openURL:url
|
||||
options:@{}
|
||||
completionHandler:nil];
|
||||
} else {
|
||||
// URL无效或无法打开
|
||||
NSLog(@"Invalid URL or cannot open URL: %@", url1);
|
||||
}
|
||||
}
|
||||
|
||||
+ (void)ShezhiACT:(bool)act
|
||||
{
|
||||
if(act){
|
||||
UIWindow *keyWindow = nil;
|
||||
for (UIWindowScene* windowScene in [UIApplication sharedApplication].connectedScenes) {
|
||||
if (windowScene.activationState == UISceneActivationStateForegroundActive) {
|
||||
keyWindow = windowScene.windows.firstObject;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
UIView *rootView = keyWindow.rootViewController.view;
|
||||
|
||||
for (UIView *subview in rootView.subviews) {
|
||||
if ([NSStringFromClass([subview class]) isEqualToString:@"WKWebView"]) {
|
||||
[self enableUserInteractionForView:subview];
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
UIWindow *keyWindow = nil;
|
||||
for (UIWindowScene* windowScene in [UIApplication sharedApplication].connectedScenes) {
|
||||
if (windowScene.activationState == UISceneActivationStateForegroundActive) {
|
||||
keyWindow = windowScene.windows.firstObject;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
UIView *rootView = keyWindow.rootViewController.view;
|
||||
|
||||
for (UIView *subview in rootView.subviews) {
|
||||
if ([NSStringFromClass([subview class]) isEqualToString:@"WKWebView"]) {
|
||||
|
||||
[self disableUserInteractionForView:subview];
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+ (void)enableUserInteractionForView:(UIView *)view {
|
||||
view.userInteractionEnabled = YES;
|
||||
for (UIView *subview in view.subviews) {
|
||||
[self enableUserInteractionForView:subview];
|
||||
for (UIGestureRecognizer *gesture in subview.gestureRecognizers) {
|
||||
if ([gesture isKindOfClass:[UITapGestureRecognizer class]]) {
|
||||
gesture.enabled = YES; // 禁用手势识别器
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+ (void)disableUserInteractionForView:(UIView *)view {
|
||||
view.userInteractionEnabled = NO;
|
||||
for (UIView *subview in view.subviews) {
|
||||
[self disableUserInteractionForView:subview]; // 递归禁用所有子视图的交互
|
||||
for (UIGestureRecognizer *gesture in subview.gestureRecognizers) {
|
||||
// 仅禁用非 UITapGestureRecognizer 类型的手势识别器
|
||||
if ([gesture isKindOfClass:[UITapGestureRecognizer class]]) {
|
||||
gesture.enabled = NO; // 禁用手势识别器
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 为了让Unity能够找到这个方法,我们需要提供一个C风格的函数入口点
|
||||
extern "C"
|
||||
{
|
||||
void copyText(const char* text)
|
||||
{
|
||||
NSLog(@"copyText----: %s", text);
|
||||
// 将C风格的字符串转换为NSString,并调用openURL方法
|
||||
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
|
||||
pasteboard.string = [NSString stringWithUTF8String:text];
|
||||
}
|
||||
|
||||
void _openURL(const char* url)
|
||||
{
|
||||
// 将C风格的字符串转换为NSString,并调用openURL方法
|
||||
[iOSBridgePlugin openURL:[NSString stringWithUTF8String:url]];
|
||||
}
|
||||
|
||||
void _dataEyeEvent(const char* dictionaryJson, const char* eventName)
|
||||
{
|
||||
// NSLog(@"barry _dataEyeEvent Json== %s", dictionaryJson);
|
||||
// NSLog(@"barry _dataEyeEvent eventName== %s", eventName);
|
||||
// 将C风格的字符串转换为NSString
|
||||
NSString *jsonString = [NSString stringWithUTF8String:dictionaryJson];
|
||||
NSString *eventNameString = [NSString stringWithUTF8String:eventName];
|
||||
|
||||
// // NSLog(@"barry _dataEyeEvent Json== %@", jsonString);
|
||||
// // NSLog(@"barry _dataEyeEvent eventName== %@", eventNameString);
|
||||
|
||||
// // 调用trackProduct方法并传递两个参数
|
||||
[[EventMark sharedEventMark] trackProduct:eventNameString dictionaryJson:jsonString];
|
||||
}
|
||||
}
|
||||
- (void)initDataEyeSDK
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@end
|
||||
Reference in New Issue
Block a user