uniapp 使用了html5plus的api,可以实现调用原生的api功能,htm5plus官方api文档:

我主要是使用了native.js 中android端部分实现了铃声静音,但不会让媒体音量也静音。要求就是这样。
可以先在网络上搜索原生android是怎么让铃声静音的,然后在用native.js的语法改造。
如果要控制其他类型的音量,网络搜android 铃声设置,有很多代码。
最终达到了我的目的。下面放代码:
var pf = uni.getSystemInfoSync().platform;
if (pf == "android")
{
let AudioManager = plus.android.importClass('android.media.AudioManager');
let main = plus.android.runtimeMainActivity();
let Context = plus.android.importClass('android.content.Context');
this.audioManager = main.getSystemService(Context.AUDIO_SERVICE); //let audioManager =
if (this.audioManager == null)
{ return;
}
console.log(AudioManager.STREAM_RING); this.audioManager.setStreamVolume(AudioManager.STREAM_RING, 0, AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_SHOW_UI);
}

给不知道的人一点线索。ios端的代码,只能把铃声变小,无法静音。如下:

console.log("ios");

                    let AVSystemController = plus.ios.importClass("AVSystemController")

                    if (AVSystemController == null)
{
console.log("AVSystemController is null");
return;
} var ac2 = AVSystemController.sharedAVSystemController();
if (ac2 == null)
{
console.log("ac2 is null");
return;
}
//ac2.setVolumeTo(0,"Ringtone"); var result = plus.ios.invoke(ac2, "setVolumeTo:forCategory:", 0.0, "Ringtone");
console.log("setVolumeTo", result);// 以上,打印true表示成功。
//下面是补救措施,未实验,因为到这iphone13就打印true,及执行成功了。
            
if (this.common.isNull(result))
{
console.log("plus.device.setVolume(0.2);");
plus.device.setVolume(0.2); let MPMusicPlayerController = plus.ios.importClass("MPMusicPlayerController");
if (AVSystemController == null)
{
console.log("MPMusicPlayerController is null");
return;
}
var media = MPMusicPlayerController.applicationMusicPlayer();
if (media == null)
{
console.log("media is null");
return;
}
var result = plus.ios.invoke(media, "setVolume:", 0.7, );
console.log("result", result);
}
uni.showToast(
{
title: '已为您看起免打扰模式',
duration: 1000,
icon: 'none',
mask: false
})

uniapp android端和ios端铃声静音,但是还是会震动的更多相关文章

  1. 多种方式判断PC端,IOS端,移动端

    1. 通过判断浏览器的userAgent,用正则来判断手机是否是IOS(苹果)和Android(安卓)客户端. var u = navigator.userAgent; var isAndroid = ...

  2. Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)

    本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...

  3. Unity导出的Xcode项目,iOS端管理摄像头的方法

    Vuforia导出的工程中管理摄像头问题 在以前的篇幅中提到了unity端和iOS端的动态交互.现在出现了一个问题.因为设备上的摄像机是实例化过来的.并且是一个单例.unity虽然已经不再显示了.但是 ...

  4. 关于Web端即JS端编程

    主要的技术是 HTML/JS/CSS/XML Web就是JS/DOM编程. 页面的数据来源: XML, JSON, HTML, Text, 第三方页面或者数据. 不一定都要跟服务器进行交互. JS端 ...

  5. JS判断android ios系统 PC端和移动端

    最近公司上线移动端,需要根据不同的系统跳转到不同的产品页面,百度后发现这一段代码很好用,不但可以判断当前是什么系统,还能知道当前浏览器是什么内核,移动端PC端都已测试无问题! var browser ...

  6. Ionic3学习笔记(八)使iOS端、Android端 Navbar 透明化

    本文为原创文章,转载请标明出处 若要使iOS端 Navbar 透明,只需要给 ion-navbar 添加 transparent 属性,但是Android端依旧会有一条border在,所以再给 ion ...

  7. 登录界面 Android简单http get请求(含server端)五 iOS端(特别篇)

    </pre><pre name="code" class="objc">NSDictionary *dict=@{@"user ...

  8. 微信小程序在Android和Ios端的获取时间兼容性问题

    an端 var time = new Date() 例如:2020-01-01 01:01:00   ios端 var time = new Date() 例如:2020/01/01 01:01:00 ...

  9. 网页背景H5视频自动播放---PC端、移动端兼容问题完美解决方案(IOS、安卓、微信端)

    最近公司官网需要使用视频当做banner背景且自动播放,并且因为是官网需要做到PC端和移动端都可以适配兼容,这些问题很是头疼: 兵来将挡,水来土掩,进过查阅相关技术资料,现已完美兼容PC端和移动端.下 ...

  10. Phonegap 之 iOS银联在线支付(js调用ios端银联支付控件)

    Phonegap项目,做支付的时候,当把网站打包到ios或android端成app后,在app上通过wap调用银联在线存在一个问题: 就是当从银联支付成功后,再从服务器返回到app客户端就很难实现. ...

随机推荐

  1. Linux Ubuntu配置国内源

    配置国内源 因为众所周知的原因,国外的很多网站在国内是访问不了或者访问极慢的,这其中就包括了Ubuntu的官方源. 所以,想要流畅的使用apt安装应用,就需要配置国内源的镜像. 市面上Ubuntu的国 ...

  2. Docker 11 数据卷

    由来 Docker 是将应用和环境打包成一个镜像. 这样,数据就不应该保存在容器中,否则容器删除,数据就会丢失,有着非常大的风险. 为此,容器和主机之间需要有一个数据共享技术,使得在 Docker 容 ...

  3. zbar:Qt调用zbar做条码识别

    编译: zbar Windows编译:https://gitee.com/vvvj/zbar-windows 下载下来后,直接使用vs来编译就可以了. zbar官网:https://zbar.sour ...

  4. 动态库 DLL 封装一:dll分类

    动态库分为三种: Non-MFC-DLL(非MFC动态库): 非MFC动态库不采用MFC类库结构,其带出函数为标准C接口,能被非MFC或MFC编写的应用程序所调用   MFC Regular DLL( ...

  5. Qt数据结构-QString一:常用方法

    一.拼接字符串 拼接字符串有两种方法: +=  .  append QString s; s = "hello"; s = s + " "; s += &quo ...

  6. Prometheus Operator与kube-prometheus之二-如何监控1.23+ kubeadm集群

    简介 系列文章: 标签 - Prometheus - 东风微鸣技术博客 (ewhisper.cn) Prometheus Operator 的上一篇: Prometheus Operator 与 ku ...

  7. 第十八篇:Django进级

    一.Django工程创建 二.Django 的 CBV和FBV 三.模板语言循环字典 四.Django基于正则表达式的URL 五.Django对应的路由名称 六.Django路由分发 七.Django ...

  8. Visual Studio 2019汇编报错 warning LNK4258: 指令“/ENTRY:main@0”与开关“/ENTRY:main”不兼容;已忽略

    Visual Studio 2019汇编报错 warning LNK4258: 指令"/ENTRY:main@0"与开关"/ENTRY:main"不兼容:已忽略 ...

  9. Kafka的实现细节

    Kafka的实现细节 一.Topic和Partition 在Kafka中的每一条消息都有一个topic.一般来说在我们应用中产生不同类型的数据,都可以设置不同的主题.一个主题一般会有多个消息的订阅者, ...

  10. Redis 的并发竞争问题是什么?如何解决这个问题?了解 redis 事务的 CAS 方案吗?

    面试官心理分析 这个也是线上非常常见的一个问题,就是多客户端同时并发写一个 key,可能本来应该先到的数据后到了,导致数据版本错了:或者是多客户端同时获取一个 key,修改值之后再写回去,只要顺序错了 ...