vue如何判斷安卓還是IOS
vue判斷安卓還是IOS
最近工作上遇到這樣一個(gè)需求
vue寫的頁面,需要同時(shí)跟安卓和ios進(jìn)行交互;
- 若是安卓,執(zhí)行代碼:android.finishActivity();
- 若是IOS,執(zhí)行代碼:
try {?
?window.webkit.messageHandlers.finishActivity.postMessage("");?
?}catch(error) {?
?console.log('WKWebView post message');
}所以我們需要進(jìn)行一個(gè)判斷
是安卓還是IOS:因?yàn)槭亲龅膯为?dú)的APP所以沒有考慮微信的問題
finishActivity() {
? ? ? ? let ua = navigator.userAgent.toLowerCase();
? ? ? ? //android終端
? ? ? ? let isAndroid = ua.indexOf('Android') > -1 || ua.indexOf('Adr') > -1;?
? ? ? ? //ios終端
? ? ? ? let isiOS = !!ua.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
? ? ? ??
? ? ? ? ? if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
? ? ? ? ? ? //ios
? ? ? ? ? ? console.log(" 我是ios")
? ? ? ? ? ? //這里是和IOS商量好的寫法,調(diào)用IOS的finishActivity方法
? ? ? ? ? ? try {?
? ? ? ? ? ? ? window.webkit.messageHandlers.finishActivity.postMessage("");?
? ? ? ? ? ? }catch(error) {?
? ? ? ? ? ? ? ? console.log('WKWebView post message');
? ? ? ? ? ? ? }
? ? ? ? ? } else(/(Android)/i.test(navigator.userAgent)) {
? ? ? ? ? ? //android
? ? ? ? ? ? console.log("我是android")
? ? ? ? ? ? //這里是和安卓商量好的寫法,調(diào)用安卓的finishActivity方法
? ? ? ? ? ? android.finishActivity(); ? ? ? ? ? ?
? ? ? ? ? } ? ? ??
? }然后就可以一個(gè)頁面同時(shí)給安卓和IOS進(jìn)行交互啦!
H5端判斷安卓跟ios顯示不同的背景圖
html:
<div :class="`${isApple==true ? 'index-cont-phone' : 'index-cont'}`" ></div>css:
? ? .index-cont{
? ? ? ? width: 100%;
? ? ? ? height: auto;
? ? ? ? min-height: 100vh;
? ? ? ? overflow-x:hidden;
? ? ? ? background: url("https://tuoluohuodong.oss-cn-shenzhen.aliyuncs.com/interaction_h5/main_bg3.png") no-repeat;
? ? ? ? background-size: contain;
? ? ? ? margin: 0;
? ? ? ? padding-bottom: 199%;
? ? ? ? // position: fixed;
? ? }
? ? .index-cont-phone{
? ? ? ? width: 100%;
? ? ? ? height: auto;
? ? ? ? min-height: 100vh;
? ? ? ? overflow-x:hidden;
? ? ? ? background: url("https://tuoluohuodong.oss-cn-shenzhen.aliyuncs.com/interaction_h5/main_bg4.png") no-repeat;
? ? ? ? background-size: contain;
? ? ? ? margin: 0;
? ? ? ? padding-bottom: 199%;
? ? ? ? // position: fixed;
? ? }js:
<script>
export default {
? ? name: "index",
? ? data() {
? ? ? ? return {
? ? ? ? ? ? isApple:true,
? ? ? ? ? ? ? ? }
? ? ? ? ? ? },
? ? ?},
? ? ?methods: {
? ? ? ?// 判斷是安卓還是ios
? ? ? ? appDown() {
? ? ? ? ? ? var u = navigator.userAgent;
? ? ? ? ? ? var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
? ? ? ? ? ? var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android終端
? ? ? ? ? ? if(isiOS){
? ? ? ? ? ? ? ? this.isApple = true
? ? ? ? ? ? }else if(isAndroid){
? ? ? ? ? ? ? ? this.isApple = false
? ? ? ? ? ? }
? ? ? ?},
? ?mounted() {
? ? ? ? ? // 調(diào)用判斷ios與安卓方法
? ? ? ? this.appDown();
? ? },
?}
</script>以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue3 ts組合式API異常onMounted is called when&
這篇文章主要為大家介紹了vue3 ts組合式API異常onMounted is called when there is no active component問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
element 結(jié)合vue 在表單驗(yàn)證時(shí)有值卻提示錯(cuò)誤的解決辦法
這篇文章主要介紹了element 結(jié)合vue 在表單驗(yàn)證下,有值卻提示錯(cuò)誤的解決辦法,需要的朋友可以參考下2018-01-01
詳解vue-template-admin三級(jí)路由無法緩存的解決方案
這篇文章主要介紹了vue-template-admin三級(jí)路由無法緩存的解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
webpack項(xiàng)目調(diào)試以及獨(dú)立打包配置文件的方法
下面小編就為大家分享一篇webpack項(xiàng)目調(diào)試以及獨(dú)立打包配置文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-02-02
簡單的vue-resourse獲取json并應(yīng)用到模板示例
本篇文章主要介紹了簡單的vue-resourse獲取json并應(yīng)用到模板示例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2017-02-02
vue中vue-cli項(xiàng)目報(bào)錯(cuò)sockjs.js報(bào)錯(cuò)問題
這篇文章主要介紹了vue中vue-cli項(xiàng)目報(bào)錯(cuò)sockjs.js報(bào)錯(cuò)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2022-12-12
vue實(shí)現(xiàn)移動(dòng)端懸浮窗效果
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)移動(dòng)端懸浮窗效果,vuejs實(shí)現(xiàn)div拖拽移動(dòng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12

