日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當前位置:雨林木風下載站 > 蘋果教程教程 > 詳細頁面

初試vue-cli使用HBuilderx打包app的坑_vue.js

初試vue-cli使用HBuilderx打包app的坑_vue.js

更新時間:2024-04-13 文章作者:未知 信息來源:網絡 閱讀次數:

微信授權登錄提示code-2appid和appsecret應該是移動應用,而非網頁應用微信授權登錄提示code:-100/自定義基座無法微信登錄和分享開發者賬號配置的應用簽名應該是md5加密后的值,...

微信授權登錄提示code-2

appid和appsecret應該是移動應用,而非網頁應用

微信授權登錄提示code:-100/自定義基座無法微信登錄和分享

開發者賬號配置的應用簽名應該是md5加密后的值,而不是原字符串

生產環境proxyTable不生效,導致接口500

兩種解決辦法:
①入口文件使用網絡地址,且和接口在同一域名下
②(推薦)

入口文件依舊是index.html

在config/prod.env和config/dev.env下添加API_ROOT

'use strict'
module.exports = {
 NODE_ENV: '"production"',
 API_ROOT: '"http://cross.precision-wechat.com"'
}

在main.js里設置baseUrl

axios.defaults.baseURL = process.env.API_ROOT

css內背景圖片使用相對路徑,打包測試不出現

修改config/index,js內的這一行

// Paths
  assetsRoot: path.resolve(__dirname, '../dist'),
  assetsSubDirectory: 'static',
  assetsPublicPath: './',

import進來的樣式表沒有被lib-flexible轉為rem

轉換寫法,改為<style scoped src='../../assets/css/formReset.css'></style>

ApplePay沙盒測試登錄app store失敗

不能直接登錄app store,需要在點擊付款時登錄沙盒賬號

微博分享閃退

Dcloud的鍋,在授權失敗時授權層會閃現閃退,授權失敗有兩種情況,1網絡問題授權失敗2你沒安裝新浪微博,要再加一層判斷,如果授權失敗則進行提示。

plus.share.getServices(function(s){
      s.forEach(function(item) {
       if(item.id === 'sinaweibo') {
        $this.shares = item;
       }
      });
      if($this.shares.authenticated) {
       // 已授權
       $this.shares.send($this.sinashareMsg, function() {
        plus.nativeUI.toast($this.langs.SHARE_SUCCESS);
       }, function(e) {
        plus.nativeUI.toast($this.langs.SHARE_FAIL);
       })
      }else {
       // 未授權
       $this.shares.authorize(function() {
        $this.shares.send($this.sinashareMsg, function() {
         plus.nativeUI.toast($this.langs.SHARE_SUCCESS);
        }, function(e) {
         plus.nativeUI.toast($this.langs.SHARE_FAIL);
        })
       }, function(e) {
        // 授權失敗
        plus.nativeUI.toast($this.langs.SHARE_FAIL);
       })
      }
     }, function(e){
      plus.nativeUI.toast(e.message);
     });

IOS真機測試,el-input光標全滿,輸入時錯位

設置line-height=字體大小

iPhone X底部有個安全區,導致fixed+bottom的導航沒有保持在最底部

打包后在index.html`

<meta name="viewport" content="width=device-width,initial-scale=1.0">`的content里加一句`viewport-fit=cover`

使用plus.createWebview創建webview打開第三方鏈接出現的諸多問題

①在打開的連接中執行一段腳本

$this.payw.evalJS(script);

安卓測試無錯,iPhone不執行

解決:

將evalJS代碼放在loaded里

$this.payw.addEventListener('loaded',function () {
    $this.payw.evalJS(string);
   });

②loaded內代碼執行了兩次,導致頁面跳轉兩次

Dcloud的鍋,解決辦法:

var isLoaded = false;
   $this.payw.addEventListener('loaded',function () {
    if(isLoaded){return true}
    isLoaded=true;
    $this.payw.evalJS(string);
   });

③使用loading監聽頁面跳轉,跳轉到執行成功頁面即close當前webview,但IOS下監聽無效

Dcloud的鍋,loading中webview.getUrl獲取的永遠是上一步的url,而不是當前頁面的真正url

一開始想更換loaded,后來發現在IOS上loaded有些webview只執行一次,有些則能每次跳轉都執行,不太穩定,最終決定使用progressChanged

解決方案:使用loaded來evalJS,progressChanged來對比地址

var isLoaded = false;
payw.addEventListener('loaded',function () {
  if(isLoaded){return true}
  isLoaded=true;
  payw.evalJS(string);
})
payw.addEventListener('progressChanged',function () {
  // 監聽是否成功
  console.log(payw.getURL())
  var callbacklink = payw.getURL().split('?')[0];
  // if(callbacklink === successUrl) {
  //  plus.webview.close(payw)
  //  console.log('success');
  // }
  // if(callbacklink === failUrl) {
  //  // 支付失敗
  //  plus.webview.close(payw);
  //  console.log('fail');
  // }
  // if(callbacklink === cancelUrl) {
  //  plus.webview.close(payw)
  //  console.log('cancel');
  // }
})

④progressChanged也會引發執行多次的問題

可以在判斷成功后remove掉事件

$this.fbsharew.addEventListener('progressChanged', handlePChange );
 function handlePChange (e) {
 if($this.fbsharew.getURL().split('?')[0] === finishlink) {
  $this.fbsharew.removeEventListener('progressChanged', handlePChange );
 }
}

處理安卓返回鍵,使返回時關閉所有webview

// 寫在mounted內
// 處理安卓返回鍵問題
  plus.key.removeEventListener('backbutton', handleBack );
  plus.key.addEventListener('backbutton', handleBack )
  function handleBack() {
   var wvs=plus.webview.all();
   for(var i=0;i<wvs.length;i++){
    if(wvs[i].getURL() !== plus.webview.currentWebview().getURL()) {
     plus.webview.close(wvs[i]);
     $this.switchUrl();// 判斷是后退還是回到其他頁面的方法
    }
   }
  }

動態添加的HTML節點如何綁定事件

有這個需求是因為有多語言版本,文本從后臺讀取。

比如

By creating your account, you agree to the Terms of Use and Privacy Policy of this site.

放在底部,點擊其他地方無反應,但點擊Terms of Use或者Privacy Policy則要出現條款浮層

解決辦法:

后臺添加語言僅修改文字,不要刪除標簽

<p>By creating your account, you agree to the<span data-id="0"> Terms of Use </span>and<span data-id="1"> Privacy Policy </span>of this site.</p>

這段html標簽寫為:

<div class="terms" @click="popup($event)" v-html="langs.REGISTER_FOOTER"></div>

事件處理:

popup (event) {
 let id = event.target.getAttribute('data-id')
 if(id === '0') {
  console.log('Terms of Use')
 }
 if(id === '1') {
  console.log('Privacy Policy')
 }
}

只有一個點擊范圍的可以直接使用<span>標簽,通過event.target.nodeName來判斷

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。

您可能感興趣的文章:
  • 淺談vue項目利用Hbuilder打包成APP流程,以及遇到的坑
  • vue-cli或vue項目利用HBuilder打包成移動端app操作
  • vue項目中使用Hbuilder打包app 設置沉浸式狀態欄的方法
  • 利用HBuilder打包前端開發webapp為apk的方法
  • HBuilder打包App方法(圖文教程)
  • 手把手教你學會HBuilder打包APP


溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

主站蜘蛛池模板: 中文字幕日韩国产 | 四虎影视在线播放 | 黑丝呻吟| 五月六月激情 | 国产日韩91 | 色婷婷伊人 | 亚洲国产成人久久77 | 国产精品爱久久久久久久9999 | 日本高清免费不卡在线播放 | 久久国产高清一区二区三区 | 亚洲男人天堂 | 国产精品久久久久久久久久98 | 国内精品久久久久久影院网站小说 | 天天综合在线观看 | 亚洲国产精品成人午夜在线观看 | 亚洲国产精品日韩一线满 | 99久久免费费视频在线观看 | 国产我不卡 | 国产成人久久蜜一区二区 | 国内自拍露脸普通话对白在线 | 成人网址在线观看 | 特色特色大片在线 | 嫩草精品 | 亚洲欧美成aⅴ人在线观看 亚洲欧美国产精品 | 日本色影院 | 九九九精品午夜在线观看 | 久久精品视频热 | 国产精品久久国产三级国不卡顿 | 天天影视欧美综合在线观看 | 欧美日韩精品免费一区二区三区 | 曰批全过程免费视频网址 | 国产亚洲欧美日韩在线一区 | 精品欧美一区手机在线观看 | 日韩毛片在线看 | 日本高清视频网站www | 操女网站 | 日本人视频18jizz免费 | 亚洲天天做日日做天天看2018 | 浮力影院最新网址 | 免费观看黄视频网站 | 亚洲一区资源网 |