最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

H5混合開(kāi)發(fā)IOS中遇到的坑

 更新時(shí)間:2017年12月13日 10:02:11   作者:zhangzhongjie  
本篇文章主要給大家講述了在用H5混合開(kāi)發(fā)APP時(shí),IOS項(xiàng)目中遇到的坑以及解決辦法,需要的朋友參考一下吧。

以下是小編通過(guò)整理后得到的在H5混合開(kāi)發(fā)的IOS項(xiàng)目中經(jīng)常遇到的坑:

1. ios系統(tǒng)手機(jī)無(wú)法自動(dòng)播放BGM

這個(gè)是蘋(píng)果系統(tǒng)限制,默認(rèn)不允許自動(dòng)播放音頻,往往需要點(diǎn)一下觸發(fā)play()事件才能播放。
那么我們?cè)陧?yè)面onload后觸發(fā)播放事件:

document.getElementById('music').play();

 

到這里一般都可以播放音樂(lè)了,如果還不行,很有可能是微信的限制。這時(shí)需要調(diào)用微信接口。
頁(yè)面先引入:

<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>

 

然后JS寫(xiě)入微信事件:

document.addEventListener("WeixinJSBridgeReady", function() {
document.getElementById('music').play();
}, false);

 

這樣利用微信接口調(diào)用play()事件,可以完美解決ios音頻無(wú)法autoplay的問(wèn)題。

2. ios系統(tǒng)搖一搖播放音效事件無(wú)效

在實(shí)現(xiàn)搖晃(引用了封裝好的shake.js)手機(jī)觸發(fā)某一音效這個(gè)需求時(shí),發(fā)現(xiàn)在微信中,音效沒(méi)有被觸發(fā)。后面找到原因:在ios里并沒(méi)有把自定義搖晃事件shake當(dāng)成交互動(dòng)作。而要播放音效,需要用戶有交互動(dòng)作。沒(méi)有交互,音效就沒(méi)被加載,那么我們先加載音效,結(jié)合上面的微信接口:

document.addEventListener("WeixinJSBridgeReady", function () {
shakeMusic.load();
}, false);

 

load()過(guò)之后,再調(diào)用play()即可聽(tīng)到音效。

3. ios系統(tǒng)不支持動(dòng)畫(huà)暫停樣式(animation-play-state)

H5頁(yè)面一般都會(huì)有BGM,也會(huì)提供一個(gè)旋轉(zhuǎn)的音樂(lè)圖標(biāo)供用戶開(kāi)啟關(guān)閉音樂(lè)。我們希望當(dāng)用戶點(diǎn)擊音樂(lè)按鈕時(shí)圖標(biāo)停止旋轉(zhuǎn),再點(diǎn)圖標(biāo)順著之前停止的位置繼續(xù)跑動(dòng)畫(huà)。animation-play-state是最簡(jiǎn)便的方式,然而,ios不支持。

目前的解決方案是:音樂(lè)圖標(biāo)負(fù)責(zé)跑動(dòng)畫(huà),圖標(biāo)父級(jí)元素負(fù)責(zé)記錄停止時(shí)的轉(zhuǎn)動(dòng)值。

html

<div class="music">
<img class="musicImg" src="/images/music.png">
</div>

 

sass

.music {
position: absolute;
width: rem(64px);
height: rem(64px);
top: rem(66px);
left: rem(15px);
z-index: 1000;
img {
width: 100%;
}
}
.musicRun {
-webkit-animation: music 2.5s infinite linear 0.5s;
animation: music 2.5s infinite linear 0.5s;
}
@-webkit-keyframes music {
0% {}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes music {
0% {}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}

 

JS

var $img = $('.musicImg')
var music = document.getElementById('music');
var isPlaying = false
running()
$img.on('click', function() {
!isPlaying ? running() : paused()
})
function running() {
music.play();
$img.addClass('musicRun')
isPlaying = true
}
function paused() {
music.pause();
var siteImg = $img.css('transform') //獲取當(dāng)前元素的動(dòng)畫(huà)改變,transform的值
var siteWp = $('.music').css('transform')
$('.music').css('transform', siteWp === 'none' ? siteImg : siteImg.concat('', siteWp))
//由于父元素沒(méi)有動(dòng)畫(huà),所以每次賦值的時(shí)候,需要將上次父元素的狀態(tài)加上
$img.removeClass('musicRun')
isPlaying = false
}

 

相關(guān)文章

  • 仿iOS圖標(biāo)抖動(dòng)

    仿iOS圖標(biāo)抖動(dòng)

    最近閑來(lái)無(wú)聊,研究了一下IPhone桌面圖標(biāo)的抖動(dòng),網(wǎng)上有一個(gè)類(lèi)似的事例,但是我看來(lái)效果實(shí)在不佳,自己也來(lái)寫(xiě)一個(gè)玩玩,有需要的小伙伴可以參考下。
    2015-05-05
  • iOS如何封裝帶復(fù)制功能的UILabel示例代碼

    iOS如何封裝帶復(fù)制功能的UILabel示例代碼

    如果是在IOS的應(yīng)用方面,很多時(shí)候我們需要封裝UILabel,下面這篇文章主要給大家介紹了關(guān)于iOS如何封裝帶復(fù)制功能的UILabel的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-08-08
  • IOS 開(kāi)發(fā)之ObjectiveC的變量類(lèi)型的字符代表

    IOS 開(kāi)發(fā)之ObjectiveC的變量類(lèi)型的字符代表

    這篇文章主要介紹了IOS 開(kāi)發(fā)之ObjectiveC的變量類(lèi)型的字符代表的相關(guān)資料,這里舉例說(shuō)明如何使用Objective的變量類(lèi)型的字符,幫助大家學(xué)習(xí)理解這部分內(nèi)容,需要的朋友可以參考下
    2017-08-08
  • IOS實(shí)現(xiàn)聊天界面底部菜單欄效果

    IOS實(shí)現(xiàn)聊天界面底部菜單欄效果

    本文給大家分享的是放boss直聘當(dāng)中的聊天信息界面,主要思路是約束動(dòng)畫(huà),實(shí)現(xiàn)代碼比較簡(jiǎn)單,下面小編通過(guò)本文給大家分享IOS實(shí)現(xiàn)聊天界面底部菜單欄效果,需要的的朋友參考下吧
    2017-09-09
  • iOS11和iPhoneX適配的一些坑

    iOS11和iPhoneX適配的一些坑

    前陣子項(xiàng)目開(kāi)發(fā)忙成狗,就一直沒(méi)做iOS11的適配,直到XcodeGM版發(fā)布后,我胸有成竹的在iPhoneX上跑起項(xiàng)目,整個(gè)人都涼透了...下面總結(jié)一下我遇到的坑,感興趣的朋友一起看看吧
    2017-09-09
  • IOS 單擊手勢(shì)的添加實(shí)現(xiàn)代碼

    IOS 單擊手勢(shì)的添加實(shí)現(xiàn)代碼

    這篇文章主要介紹了IOS 單擊手勢(shì)的添加實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Flutter CustomPaint繪制widget使用示例

    Flutter CustomPaint繪制widget使用示例

    這篇文章主要為大家介紹了Flutter CustomPaint繪制widget使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 一篇文章搞定iOS的Cookie存取

    一篇文章搞定iOS的Cookie存取

    Cookie中文名稱(chēng)叫做“小型文本文件”,指某些網(wǎng)站為了辨別用戶身份而存儲(chǔ)在用戶本地終端上的數(shù)據(jù)(通常經(jīng)過(guò)加密),下面這篇文章主要給大家介紹了關(guān)于iOS的Cookie存取的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-12-12
  • iOS 適配iPhone X的方法

    iOS 適配iPhone X的方法

    下面小編就為大家分享一篇iOS 適配iPhone X的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • IOS框架Spring常用的動(dòng)畫(huà)效果

    IOS框架Spring常用的動(dòng)畫(huà)效果

    本文給大家介紹的是在IOS開(kāi)發(fā)中常用的動(dòng)畫(huà)效果以及自定義轉(zhuǎn)場(chǎng)動(dòng)畫(huà)特效的代碼,非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下
    2016-03-03

最新評(píng)論

清丰县| 静海县| 屏东市| 五家渠市| 新兴县| 苗栗县| 青河县| 海宁市| 前郭尔| 玛多县| 遵义市| 榆林市| 布拖县| 嘉荫县| 株洲县| 鄂尔多斯市| 板桥市| 微博| 永昌县| 龙陵县| 什邡市| 连州市| 台湾省| 吐鲁番市| 巴里| 宜阳县| 庐江县| 乌兰察布市| 甘谷县| 阿坝县| 乌拉特中旗| 巨野县| 穆棱市| 屏山县| 砚山县| 南召县| 察哈| 上高县| 辽中县| 增城市| 拉萨市|