導讀微信授權登錄提示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節點如何綁定事件 有這個需求是因為有多語言版本,文本從后臺讀取。 比如
放在底部,點擊其他地方無反應,但點擊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來判斷 以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。
您可能感興趣的文章:
|
溫馨提示:喜歡本站的話,請收藏一下本站!