中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

H5混合開發IOS中遇到的坑有哪些

發布時間:2021-08-26 14:00:36 來源:億速云 閱讀:120 作者:小新 欄目:移動開發

這篇文章將為大家詳細講解有關H5混合開發IOS中遇到的坑有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

1. ios系統手機無法自動播放BGM

這個是蘋果系統限制,默認不允許自動播放音頻,往往需要點一下觸發play()事件才能播放。
那么我們在頁面onload后觸發播放事件:

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

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

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

然后JS寫入微信事件:

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

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

2. ios系統搖一搖播放音效事件無效

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

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

load()過之后,再調用play()即可聽到音效。

3. ios系統不支持動畫暫停樣式(animation-play-state)

H5頁面一般都會有BGM,也會提供一個旋轉的音樂圖標供用戶開啟關閉音樂。我們希望當用戶點擊音樂按鈕時圖標停止旋轉,再點圖標順著之前停止的位置繼續跑動畫。animation-play-state是最簡便的方式,然而,ios不支持。

目前的解決方案是:音樂圖標負責跑動畫,圖標父級元素負責記錄停止時的轉動值。

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') //獲取當前元素的動畫改變,transform的值
var siteWp = $('.music').css('transform')
$('.music').css('transform', siteWp === 'none' ? siteImg : siteImg.concat('', siteWp))
//由于父元素沒有動畫,所以每次賦值的時候,需要將上次父元素的狀態加上
$img.removeClass('musicRun')
isPlaying = false
}

關于“H5混合開發IOS中遇到的坑有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兴文县| 永仁县| 旺苍县| 深圳市| 和平区| 株洲市| 永新县| 长海县| 康乐县| 韶关市| 隆尧县| 金沙县| 濮阳市| 吐鲁番市| 巨野县| 修水县| 商都县| 三台县| 木里| 如东县| 凤山县| 天水市| 海淀区| 建宁县| 沾化县| 惠东县| 宁远县| 遂宁市| 保康县| 玉环县| 扶余县| 怀化市| 宝应县| 玉龙| 凤翔县| 海丰县| 辉县市| 西乌珠穆沁旗| 唐河县| 三河市| 浏阳市|