欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue調(diào)用原生方法交互解讀

 更新時間:2022年09月21日 16:51:27   作者:前端菜中菜  
這篇文章主要介紹了vue調(diào)用原生方法交互,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

vue調(diào)用原生方法交互

目前在做一個H5應(yīng)用;需要調(diào)用原生方法進行交互;特此做一個記錄。

技術(shù)棧 : vue版本2.6 vant版本 2.12

第一步

聲明一個rpcFn.js文件 進行原生交互阿里橋封裝

const rpc = function (url, params) {
? return new Promise((res, ref) => {
? ? try {
? ? ? // 呼起 JSBridge阿里橋', url:路徑; params:參數(shù);
? ? ? window.AlipayJSBridge.call(url, {
? ? ? ? ...params
? ? ? }, (result) => {
? ? ? ? let code = result.code * 1;
? ? ? ? // result:回調(diào)數(shù)據(jù)源;
? ? ? ? // 判斷狀態(tài) 是否 200
? ? ? ? if (result && code === 200) {
? ? ? ? ? res(result);
? ? ? ? } else {
? ? ? ? ? // 這里可以統(tǒng)一做一些 提示操作
? ? ? ? ? ref(result);
? ? ? ? }
? ? ? });
? ? } catch (e) {
? ? ? ref(e, '設(shè)備不支持');
? ? }
? });
};
export default rpc;

第二步

聲明rpc.js 引入 封裝的 rpcFn 原生方法; 進行公共封裝

import rpcFn from './rpcFn.js';
// 引入整個vue 實例
import Vue from 'vue';
const newVue = new Vue();
// 這里做一個數(shù)據(jù) 遍歷 需要增加原生方法的話直接在rpcList增加
const rpcList = [
? // 百度定位
? 'baiduPositioning',
? // 人臉識別認證
? 'peopleFace',
? // 拍照
? 'gotoCamera',
? ...
];
const rpcListLength = rpcList.length;
const rpcFuncObj = {};
for (let i = 0; i < rpcListLength; i++) {
? const rpcName = rpcList[i];
? //firstLetterToUpperCase 方法 將 rpcList 每一項的首字母轉(zhuǎn)大寫 peopleFace => PeopleFace
? const rpcFuncName = `rpc${newVue.firstLetterToUpperCase(rpcName)}`;
? rpcFuncObj[rpcFuncName] = function (params) {
? ? return rpcFn(rpcName, params);
? };
? // rpcName:每一項原生方法; rpcFuncName:掛載在vue實例上完整的原生方法;params:原生方法的參數(shù); peopleFace => rpcPeopleFace
}
// 方法導(dǎo)出
export default {
? ...rpcFuncObj
};

第三步

在 main.js 引入,掛載在vue 實例上

import rpc from 'rpc.js';
// 遍歷掛載在 vue實例上
Object.keys(rpc).forEach(rpcName => {
? Vue.prototype[rpcName] = rpc[rpcName];
});

第四步

在頁面中調(diào)用原生方法

<!--頁面按鈕執(zhí)行事件-->
<Button @click="handleClick()">按鈕</Button>
?
// 按鈕執(zhí)行 原生定位事件
handleClick() {
? // 這里 我們可以打印 this ; ps: this指向整個 vue實例
? console.log(this,'vue實例');
? this.rpcBaiduPositioning().then((res) => {
? ? //獲取原生定位數(shù)據(jù)
? ? console.log(res, "原生定位地址數(shù)據(jù)在這里");
? }).catch(rej => {
? ? Toast.fail(rej.message);
? });
};

vue和原生native交互使用

安卓與Vue交互方式

首先Vue調(diào)用安卓這方面不用說了,使用方式和html調(diào)用安卓Native方法一致,這里就不做多說了,下面重點要說的是安卓調(diào)用Vue的function,這里要特別說明下,安卓端調(diào)用代碼不變,主要是Vue端實現(xiàn)。

因為安卓與網(wǎng)頁之間的交互是通過window來實現(xiàn)的,但是因為Vue的的內(nèi)部實現(xiàn)邏輯對付function方法并不是掛載到window下的,所以安卓就無法通過window調(diào)用Vue當(dāng)中的方法,然后就導(dǎo)致了不管原生怎么修改代碼最后都無法實現(xiàn)調(diào)用網(wǎng)頁端的function代碼。

知道了原因解決起來就容易了,既然是因為Vue無法將function代碼掛載到window下,那么就手動將function方法掛載到window上就好了,這個實現(xiàn)起來也容易,無非就是在vue的oncrete或者mount方法下面使用window.funcName = this.funcName 或者**window.funcName = function(){}**這兩種方法實現(xiàn)將function掛載到window上,這樣就可以實現(xiàn)了原生訪問網(wǎng)頁代碼的操作。 

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • vue與bootstrap實現(xiàn)簡單用戶信息添加刪除功能

    vue與bootstrap實現(xiàn)簡單用戶信息添加刪除功能

    這篇文章主要為大家詳細介紹了vue與bootstrap實現(xiàn)簡單用戶信息添加刪除功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • 解決vue中對象屬性改變視圖不更新的問題

    解決vue中對象屬性改變視圖不更新的問題

    下面小編就為大家分享一篇解決vue中對象屬性改變視圖不更新的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • vue+axios實現(xiàn)圖片上傳識別人臉的示例代碼

    vue+axios實現(xiàn)圖片上傳識別人臉的示例代碼

    本文主要介紹了vue+axios實現(xiàn)圖片上傳識別人臉,這里采用的是vant的文件上傳組件,通過上傳圖片后端識別圖片里的人臉,感興趣的可以了解一下
    2021-11-11
  • vue中優(yōu)雅實現(xiàn)數(shù)字遞增特效的詳細過程

    vue中優(yōu)雅實現(xiàn)數(shù)字遞增特效的詳細過程

    項目中需要做數(shù)字滾動增加的效果,一開始很懵,研究了一下原理,發(fā)現(xiàn)很簡單,下面這篇文章主要給大家介紹了關(guān)于vue中優(yōu)雅實現(xiàn)數(shù)字遞增特效的詳細過程,需要的朋友可以參考下
    2022-12-12
  • antd的選擇框如何增加tab選中的方法示例

    antd的選擇框如何增加tab選中的方法示例

    這篇文章主要為大家介紹了antd的選擇框如何增加tab選中的方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Vue實現(xiàn)商品飛入購物車效果(電商項目)

    Vue實現(xiàn)商品飛入購物車效果(電商項目)

    這篇文章主要介紹了Vue實現(xiàn)商品飛入購物車效果(電商項目),這種效果在一些電商平臺經(jīng)常會用到,今天小編通過代碼詳解,需要的朋友可以參考下
    2019-11-11
  • vue下的@change事件的實現(xiàn)

    vue下的@change事件的實現(xiàn)

    這篇文章主要介紹了vue下的@change事件的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • 解決vue熱替換失效的根本原因

    解決vue熱替換失效的根本原因

    今天小編就為大家分享一篇解決vue熱替換失效的根本原因,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • 新手簡單了解vue

    新手簡單了解vue

    Vue.js是一個構(gòu)建數(shù)據(jù)驅(qū)動的 web 界面的漸進式框架。Vue.js 的目標是通過盡可能簡單的 API 實現(xiàn)響應(yīng)的數(shù)據(jù)綁定和組合的視圖組件。下面我們來簡單了解下吧
    2019-05-05
  • react和vue的事件處理差異詳解

    react和vue的事件處理差異詳解

    這篇文章主要介紹了react和vue的事件處理差異,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03

最新評論