fluttercommunity / fluttercommunity/flutter_webview_plugin

The monitoring function is triggered twice under the same Url

オープン
#862 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Java
スター
1.5k
フォーク
938
PR マージ指標
30日以内にマージされた PR はありません

説明

## System info

Issue occurs on: Android
Plugin version: 0.3.11
Flutter doctor output:
[✓] Flutter (Channel stable, 1.22.5, on Mac OS X 10.15.3 19D76 darwin-x64, locale
zh-Hans-CN)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
[✓] Android Studio (version 3.5)
[✓] IntelliJ IDEA Ultimate Edition (version 2019.3)
[✓] VS Code (version 1.52.1)
[✓] Connected device (1 available)

• No issues found!

```
paste it here...
```

## Steps to Reproduce

1. ...
```
@override
void initState() {
super.initState();
webviewPlugin.onUrlChanged.listen((url) {
// TODO:相同的地址会执行两次,bug
if (mounted) {
print("url changed: $url");
isLoading = false;
setState(() {});
if (url != null && url.contains("code=")) {
String code = url.split("?")[1].split("=")[1].split("&")[0];
Map params = Map();
params["client_id"] = AppApiConfig.CLIENT_ID;
params["client_secret"] = AppApiConfig.SECRET_KEY;
params["grant_type"] = "authorization_code";
params["redirect_uri"] = AppApiConfig.CALLBACK;
params["code"] = '$code';
params["dataType"] = "json";
NetUtils.post(AppUrls.OAUTH2_TOKEN, params).then((data) async {
Map map = json.decode(data);
// TODO: 处理bug错误
if (map["error"] == "400") {
print("请求出错");
return;
}
if (map != null && map.isNotEmpty) {
await DataUtils.setLoginInfo(map: map);
Navigator.pop(context, AppMsg.SUCCESS);
}
});
}
}
});
}

```
2. ...
3. ...

## Logs

![image](https://user-images.githubusercontent.com/46376536/102970272-2a94ac80-4532-11eb-85c0-08f30b5cd70e.png)

```
2 I/flutter (12981): url changed: http://blog.jackson615.top/?code=7rX7S6&state=
```

```
```

```
```

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。