ホームページ > 記事 > WeChat アプレット > WeChat アプレット ネットワークがタイムアウトになった場合はどうすればよいですか?
WeChat アプレット ネットワーク タイムアウトの解決策: 1. onLaunch の実行中にタスクがタイムアウトした場合は、エラー レベルを 0 に設定し、エラー ページにリダイレクトします。 2. ページ リクエストがタイムアウトした場合は、エラー レベルを設定します。レベルを 0 にします。 2. 再試行することで修正できます。
WeChat アプレット ネットワーク タイムアウトの解決策:
onLaunch
これを通じて、ユーザーの基本情報、または次のステップの処理のために配置します。データを取得できない場合、アプレット全体が失敗します。
そこで、エラーを 2 つのレベルに分けることをお勧めします。開発者サーバーに接続できない場合は、ページをリロードすることで対処できます。ただし、onLaunch のデータが取得できない場合は、ユーザーは終了する必要があります小さなプログラムを再度開いて再試行してください。
app.json
の構成はタイムアウトの設定に使用されます。デフォルトは 6000 ミリ秒、つまり 6 秒です。
"networkTimeout": { "request": 6000, "downloadFile": 10000 }
関連する学習上の推奨事項: WeChat ミニ プログラム開発チュートリアル
1.
onLaunch
wx.login({ success(res) { if (res.code) { //console.log(res.code); //发起网络请求 wx.request({ url: 'https://**/index/zz/getuserinfo', data: { code: res.code }, success: res => { wx.setStorageSync('open_id', res.data.openid); wx.setStorageSync('session_id', res.data.session_id); wx.setStorageSync('session_key', res.data.session_key); that.globalData.isSessionkey=true; //console.log(res.data); if (that.sessionCallback) { that.sessionCallback(res); } },fail:f=> { wx.showModal({ title: '提示', showCancel: false, content: '可能网络不太好,请重试!', success: function () { wx.navigateTo({ url: '/pages/reload?error=0' }); } }); } }) } else { console.log('登录失败!' + res.errMsg) } }, fail: function () { wx.showModal({ title: '提示', showCancel: false, content: '可能网络不太好,请重试!', success: function () { wx.navigateTo({ url: '/pages/reload?error=0' }); } }); } });2. ページ要求がタイムアウトした場合は、エラーを 2 に設定します。これは再試行することで修正できます。
wx.request({ url: webUrl + model.url, data: model.param, method: model.method, success: function (res) { }, fail: function (res) { wx.hideLoading(); wx.showModal({ title: '提示', showCancel: false, content: '可能网络不太好,请重试!', success: function () { wx.navigateTo({ url: '/pages/reload?error=1' }); } }); } })
3. ページを処理します。
getCurrentPages()## を使用します。 # 前のページ オブジェクトを取得するには、wx.navigateTo
このページへのリダイレクトを使用する必要があります/** * 页面的初始数据 */ data: { error:0 // 0:需要退出小程序 1:可以重新发起网络请求重试 }, reLoad:function(error) { var pages = getCurrentPages();//获取页面栈 if (pages.length > 1) { //上一个页面实例对象 var prePage = pages[pages.length - 2]; let url=prePage.route; var options = prePage.options //如果要获取url中所带的参数可以查看options console.log('options', options); //拼接url的参数 var urlWithArgs = url + '?' for (var key in options) { var value = options[key] urlWithArgs += key + '=' + value + '&' } urlWithArgs = urlWithArgs.substring(0, urlWithArgs.length - 1) wx.reLaunch({ url: '/' + urlWithArgs, fail:function(e) { wx.switchTab({ url: '/' + prePage.route, }) } }); } }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { this.setData({ error: options.error}); // this.reLoad(options.error); },
以上がWeChat アプレット ネットワークがタイムアウトになった場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。