目前正在修改帶有作業 Android 應用程式的客戶端的日志記錄邏輯,以便在 iOS 上也能作業。應用程式正在使用 DIO 進行和處理 https 呼叫。地址作為字串存盤在單獨的檔案中(我們稱之為“設定”)。
顯然不能提供原始鏈接,但它是這樣的:
const String firstUrl = 'https://best-service-ever.com/access/';
const String secondUrl = 'https://another-good-service.com';
當前代碼在日志記錄腳本中如下所示:
static Uri get firstUri => Uri.parse(settings.firstUrl);
static Uri get loginUri =>
firstUri.resolve('login').replace(queryParameters: <String, dynamic>{'service': settings.secondUrl});
Android 生成好的 loginUri -https://best-service-ever.com/access/login?service=https://another-good-service.com
但是由于某些神奇的原因,ios loginURI 是https://best-service-ever.com/login?service=https://another-good-service.com
.
為什么以及如何在決議時以及僅在一個平臺上丟失端點?
**我也不能只修改resolve('access/login')
我需要多個地方的地址。
**另外我目前正在 macOS 11.6.5 上運行 Flutter channel stable 2.10.5
uj5u.com熱心網友回復:
請嘗試這種方式
const String firstUrl = 'https://best-service-ever.com/access/login';
const String secondUrl = 'https://another-good-service.com';
Uri loginUri = Uri.parse(
firstUrl).replace(queryParameters: <String, dynamic>{'service':secondUrl});
print(loginUri);
uj5u.com熱心網友回復:
看起來它可能是顫振中的一個錯誤。然后我可能會通過這樣做來解決它
String base = 'https://best-service-ever.com/';
String get firstUrl => '${base}access/';
String secondUrl = 'https://another-good-service.com';
static Uri get firstUri => Uri.parse(settings.firstUrl);
static Uri get base => Uri.parse(settings.base);
static Uri get loginUri =>
base.resolve('access/login').replace(queryParameters: <String, dynamic>{'service': settings.secondUrl});
這樣您仍然可以firstUrl
在其余代碼中使用原始代碼
uj5u.com熱心網友回復:
而不是使用Uri.parse
嘗試Uri.https
可能會有所幫助。
查看此官方鏈接以獲取更多資訊
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/491017.html
下一篇:Flutter升級后的問題