Vue はシェイク機能を実装します (ios13.3 以降と互換性があります)

Vue はシェイク機能を実装します (ios13.3 以降と互換性があります)

最近、shake.jsを使用して、shakeに似た機能を作成しました。ただし、shake機能はios13.3より前のバージョンでトリガーできるため、それ以降のバージョンでは互換性が必要です。ユーザーが手動でクリックして、アクションや指示の権限を承認できるように、ポップアップボックスを作成する必要があります。 (https プロトコルが必要です)

<van-popup v-model="isTip" class="popInfo" :close-on-click-overlay="false">
 <div class="mainBody">
 <h3 class="systemTip">ヒント</h3>
 <div class="確認">
 iOS システムはアクションと指示にアクセスするための許可を手動で取得する必要があるため、ゲームが正常に進行するように、アクセスプロンプトで [許可] をクリックしてください。
 </div>
 </div>
 <button class="bottomButton" @click="handleInit">
 了解しました</button>
</バン-ポップアップ>

シェイク

//shake.jsを導入する
作成された(){
 this.initShake()
 定数isAction = JSON.parse(localStorage.getItem('getAction'))
 var ua = navigator.userAgent.toLowerCase();
 if (ua.indexOf("Mac OS X のような") > 0) {
 var reg = /os [\d._]*/gi;
 var verinfo = ua.match(reg);
 var version = (verinfo+"").replace(/[^0-9|_.]/ig,"").replace(/_/ig,".");
 if (parseFloat(バージョン) >= 13.3 && !isAction){
 localStorage.setItem("getAction",true)
 this.isTip = true
 }
 }
},
方法:{
 initShake(){
 this.myShakeEvent = 新しいシェイク({
 しきい値: 15、// シェイクしきい値タイムアウト: 1000 // イベント頻度、オプションの値});
 this.myShakeEvent.start();
 window.addEventListener('shake', xx);
 },
 ハンドル初期化(){
 this.isTip = false
 this.ios13granted()
 },
 ios13granted() {
 if (typeof DeviceMotionEvent.requestPermission === 'function') {
 DeviceMotionEvent.requestPermission().then(permissionState => {
 権限状態が「許可」の場合{
 this.initShake() //Shake} else if(permissionState === 'denied'){// 開いたリンクは https で始まっていません alert("現在の IOS システムでは、アクションと指示へのアクセスが拒否されています。WeChat を終了し、イベント ページに再度アクセスして権限を取得してください。または、抽選バケットを直接クリックしてイベントに参加してください")
 }
 }).catch((エラー) => {
 アラート("デバイスの向きやモーションへのアクセスを要求するには、ユーザーのジェスチャーが必要です")
 })
 } それ以外 {
 // 通常の iOS 13 以降以外のデバイスを処理する alert("通常の iOS 13 以降以外のデバイスを処理する")
 }
 },
}

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • WeChatシェイク機能を実装するためのJavaScript+H5
  • JSを使ったWeChatシェイクの原理の解析
  • JavaScript HTML5 でのシェイク機能の実装

<<:  Windows (x86、64 ビット) で MySQL 5.7.17 無料インストール バージョンをアップグレードするための詳細なチュートリアル

>>:  MAC 上の MySQL の初期パスワードを忘れた場合の対処方法

推薦する

CSS3 を使用して 3D テキスト ホバー効果を実装するサンプル コード

この記事では、3D テキストのホバー変更効果を実現するための CSS3 のサンプル コードを紹介しま...

Tomcat マルチインスタンスの展開と構成の原則

1. ファイアウォールをオフにし、Tomcatのインストールに必要なソフトウェアパッケージを/opt...

XHTML 入門チュートリアル: XHTML Web ページ画像アプリケーション

<br />適度に画像を追加すると、Web ページがより美しくなります。 画像タグ &l...

ハイパーリンクを開くターゲットのテスト

リンクのターゲット属性は、リンクが開く場所を決定します。その値は通常、_blank、_self、_p...

キャンバスはスクラッチカード効果を描画します

この記事では、キャンバスでスクラッチカード効果を描画するための具体的なコードを参考までに共有します。...

MySQLはconnect_by_isleaf MySQLメソッドまたはストアドプロシージャに似た機能を実装します

最近、特に異常なビジネス需要があり、テーブルがあります テーブル「デモ」を作成します( `id` i...

Dockerの核となる原則であるCgroupの詳細な説明

カーネル内の強力なツール cgroup は、NameSpace によって分離されたリソースを制限でき...

DockerコンテナにRedisをデプロイする手順の紹介

目次1 つの Redis 設定ファイル2 Dockerコマンドの開始3 docker-compose...

vue+springbootでログイン機能を実現

この記事の例では、ログイン機能を実現するためのvue+springbootの具体的なコードを参考まで...

Vueのキャッシュ方法の例の詳細な説明

最近、「フロントエンドキャッシュ」という新しい要件が作成されました要件背景: フォームへの高頻度の繰...

CSS で平均レイアウトを実現するために負のマージンを使用する例

均等に分散されたレイアウトの場合、通常はネガティブ マージン方式を使用します。次の図は平均的なレイア...

jQuery は拡張アニメーションによるナビゲーション バー効果を実装します

展開アニメーション効果のあるナビゲーションバーを設計してカスタマイズし、デモを作成してみました。設計...

MySQL 高可用性クラスタの展開とフェイルオーバーの実装

目次1. 内閣府1. コンセプト2. MHAの構成3. MHAの特徴2. MySQL+MHAをビルド...

Vue で動的に読み込まれたローカル画像を処理する方法

問題を見つける今日は、vue ファイルにローカル画像を導入する際に問題が発生したので、この記事を書き...

M1 チップに MySQL 8.0 データベースをインストールする方法 (画像とテキスト)

1. ダウンロードまず、MySQLの国内ミラーをお勧めします。特に速いわけではありませんが、それで...