• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 蘋果教程教程 > 詳細(xì)頁面

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

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

        更新時(shí)間:2024-04-13 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

        導(dǎo)微信授權(quán)登錄提示code-2appid和appsecret應(yīng)該是移動(dòng)應(yīng)用,而非網(wǎng)頁應(yīng)用微信授權(quán)登錄提示code:-100/自定義基座無法微信登錄和分享開發(fā)者賬號(hào)配置的應(yīng)用簽名應(yīng)該是md5加密后的值,...

        微信授權(quán)登錄提示code-2

        appid和appsecret應(yīng)該是移動(dòng)應(yīng)用,而非網(wǎng)頁應(yīng)用

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

        開發(fā)者賬號(hào)配置的應(yīng)用簽名應(yīng)該是md5加密后的值,而不是原字符串

        生產(chǎn)環(huán)境proxyTable不生效,導(dǎo)致接口500

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

        入口文件依舊是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里設(shè)置baseUrl

        axios.defaults.baseURL = process.env.API_ROOT

        css內(nèi)背景圖片使用相對(duì)路徑,打包測(cè)試不出現(xiàn)

        修改config/index,js內(nèi)的這一行

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

        import進(jìn)來的樣式表沒有被lib-flexible轉(zhuǎn)為rem

        轉(zhuǎn)換寫法,改為<style scoped src='../../assets/css/formReset.css'></style>

        ApplePay沙盒測(cè)試登錄app store失敗

        不能直接登錄app store,需要在點(diǎn)擊付款時(shí)登錄沙盒賬號(hào)

        微博分享閃退

        Dcloud的鍋,在授權(quán)失敗時(shí)授權(quán)層會(huì)閃現(xiàn)閃退,授權(quán)失敗有兩種情況,1網(wǎng)絡(luò)問題授權(quán)失敗2你沒安裝新浪微博,要再加一層判斷,如果授權(quán)失敗則進(jìn)行提示。

        plus.share.getServices(function(s){
              s.forEach(function(item) {
               if(item.id === 'sinaweibo') {
                $this.shares = item;
               }
              });
              if($this.shares.authenticated) {
               // 已授權(quán)
               $this.shares.send($this.sinashareMsg, function() {
                plus.nativeUI.toast($this.langs.SHARE_SUCCESS);
               }, function(e) {
                plus.nativeUI.toast($this.langs.SHARE_FAIL);
               })
              }else {
               // 未授權(quán)
               $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) {
                // 授權(quán)失敗
                plus.nativeUI.toast($this.langs.SHARE_FAIL);
               })
              }
             }, function(e){
              plus.nativeUI.toast(e.message);
             });
        

        IOS真機(jī)測(cè)試,el-input光標(biāo)全滿,輸入時(shí)錯(cuò)位

        設(shè)置line-height=字體大小

        iPhone X底部有個(gè)安全區(qū),導(dǎo)致fixed+bottom的導(dǎo)航?jīng)]有保持在最底部

        打包后在index.html`

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

        使用plus.createWebview創(chuàng)建webview打開第三方鏈接出現(xiàn)的諸多問題

        ①在打開的連接中執(zhí)行一段腳本

        $this.payw.evalJS(script);

        安卓測(cè)試無錯(cuò),iPhone不執(zhí)行

        解決:

        將evalJS代碼放在loaded里

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

        ②loaded內(nèi)代碼執(zhí)行了兩次,導(dǎo)致頁面跳轉(zhuǎn)兩次

        Dcloud的鍋,解決辦法:

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

        ③使用loading監(jiān)聽頁面跳轉(zhuǎn),跳轉(zhuǎn)到執(zhí)行成功頁面即close當(dāng)前webview,但I(xiàn)OS下監(jiān)聽無效

        Dcloud的鍋,loading中webview.getUrl獲取的永遠(yuǎn)是上一步的url,而不是當(dāng)前頁面的真正url

        一開始想更換loaded,后來發(fā)現(xiàn)在IOS上loaded有些webview只執(zhí)行一次,有些則能每次跳轉(zhuǎn)都執(zhí)行,不太穩(wěn)定,最終決定使用progressChanged

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

        var isLoaded = false;
        payw.addEventListener('loaded',function () {
          if(isLoaded){return true}
          isLoaded=true;
          payw.evalJS(string);
        })
        payw.addEventListener('progressChanged',function () {
          // 監(jiān)聽是否成功
          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也會(huì)引發(fā)執(zhí)行多次的問題

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

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

        處理安卓返回鍵,使返回時(shí)關(guān)閉所有webview

        // 寫在mounted內(nèi)
        // 處理安卓返回鍵問題
          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();// 判斷是后退還是回到其他頁面的方法
            }
           }
          }
        
        

        動(dòng)態(tài)添加的HTML節(jié)點(diǎn)如何綁定事件

        有這個(gè)需求是因?yàn)橛卸嗾Z言版本,文本從后臺(tái)讀取。

        比如

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

        放在底部,點(diǎn)擊其他地方無反應(yīng),但點(diǎn)擊Terms of Use或者Privacy Policy則要出現(xiàn)條款浮層

        解決辦法:

        后臺(tái)添加語言僅修改文字,不要?jiǎng)h除標(biāo)簽

        <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標(biāo)簽寫為:

        <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')
         }
        }
        

        只有一個(gè)點(diǎn)擊范圍的可以直接使用<span>標(biāo)簽,通過event.target.nodeName來判斷

        以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持本站。

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


        溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 久久久久亚洲AV片无码| 亚洲免费视频网址| 亚洲国产成人无码AV在线| 亚洲精品乱码久久久久蜜桃| 99久久精品日本一区二区免费| 免费看美女被靠到爽| 国产在线不卡免费播放| 亚洲人成人77777网站| 中文字幕在线观看亚洲| 麻豆va在线精品免费播放| 国产麻豆一精品一AV一免费| 毛片免费观看的视频| 亚洲色婷婷六月亚洲婷婷6月| 国产精品美女免费视频观看| 9久9久女女免费精品视频在线观看| 毛茸茸bbw亚洲人| 亚洲男人天堂2018av| WWW免费视频在线观看播放| 免费观看男人免费桶女人视频| 亚洲精品无码久久久久久| 久久国产乱子伦免费精品| 国产一区二区三区在线免费| 亚洲一区中文字幕在线观看| 国产日韩久久免费影院| 亚洲AV无码国产丝袜在线观看| 少妇亚洲免费精品| 成人午夜视频免费| 免费一级做a爰片久久毛片潮| 可以免费看的卡一卡二| 亚洲黄网站wwwwww| 日韩视频免费在线| 亚洲色大网站WWW永久网站| 99久久99久久精品免费看蜜桃| 天天综合亚洲色在线精品| 久草视频在线免费| 国产精品无码亚洲一区二区三区| 国产偷国产偷亚洲清高动态图| 黄色三级三级免费看| 亚洲s色大片在线观看| 无码人妻精品一二三区免费| 亚洲高清免费视频|