手机短震动
cocoscreator版本:v3.5.2
android-sdk 31
微信小程序端
- 小程序直接调用api接口
wx.vibrateShort(Object object)
即可; - 相关文档地址:wx.vibrateShort
- 代码如下:
/**
* <a href="https://xiaowo6.cn/t/手机震动.html" >手机震动</a>
* 使手机发生较短时间的振动(15 ms)。仅在 iPhone 7 / 7 Plus 以上及 Android 机型生效
* type有效值为:heavy、medium、light
* https://developers.weixin.qq.com/minigame/dev/api/device/vibrate/wx.vibrateShort.html
*/
public static vibrateShort(type:string) {
if (sys.platform != 'WECHAT_GAME') return;
window['wx'].vibrateShort({type:type}).then(res=>{}).catch(err=>{});
}
安卓端
AndroidManifest.xml
中注册手机震动权限:
<!-- 手机震动权限 -->
<uses-permission android:name="android.permission.VIBRATE"/>
AppActivity.java
中编写静态方法,注意需要在UI线程中处理;
// 引入Vibrator
import android.os.Vibrator;
public class AppActivity extends CocosActivity {
public static AppActivity mAppActivity = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// DO OTHER INITIALIZATION BELOW
SDKWrapper.shared().init(this);
mAppActivity = this;
}
/*
*手机震动
*静态方法,供ts调用
*/
public static void vibrateShort() {
//一定要确保在UI线程操作
mAppActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
Vibrator v = (Vibrator) mAppActivity.getSystemService(Context.VIBRATOR_SERVICE);
v.vibrate(150);// 150毫秒
}
});
}
}
- TS中调用vibrateShort方法即可:
/**
* 手机震动
* 使手机发生较短时间的振动(15 ms)
*/
public static vibrateShort(type) {
if (sys.platform != 'ANDROID') return;
jsb.reflection.callStaticMethod("com/cocos/game/AppActivity", "vibrateShort", "()V");
}