js端代码:
export default class JsbUtils {
public static callVibration(data: any): void {
if (CC_JSB) {
// @ts-ignore
jsb.reflection.callStaticMethod('JsBridge', 'sayMe');
jsb.reflection.callStaticMethod('JsBridge', 'callVibration:', data);
}
}
}
export const jsbUtils = new JsbUtils();
OC: JsBridge.h
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface JsBridge : NSObject
+ (void)callVibration:(NSString *)withName;
+ (void)sayMe;
@end
NS_ASSUME_NONNULL_END
JsBridge.m
#import "JsBridge.h"
@implementation JsBridge
+ (void)callVibration:(NSString *)withName {
NSLog(@"withName is %@",withName);
NSLog(@"hello");
UIImpactFeedbackGenerator* generator = [[UIImpactFeedbackGenerator alloc] initWithStyle:UIImpactFeedbackStyleMedium];
[generator impactOccurred];
}
+ (void)sayMe {
NSLog(@"sayMe");
}
@end
2:android端
public static void callVibration() {
if (mVibrator != null && mVibrator.hasVibrator()) {
// 检查设备是否支持震动
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
// Android 版本大于等于 Android O (API 26) 时,使用 VibrationEffect
mVibrator.vibrate(VibrationEffect.createOneShot(100, 5));
} else {
// Android 版本小于 Android O 时,使用过时的 vibrate 方法
mVibrator.vibrate(100);
}
}
}