Flutter Webview 传递 Token

10 min read

通过设置Header传递Token

需要注意的是这里设置的是请求首次URL时对应的header,并不是设置浏览器每次请求的header,如Cookie等信息,还是需要通过evaluateJavascript手动进行设置

_controller.future.then((controller) {
  _webViewController = controller;
  String tokenName = 'token';
  String tokenValue = 'TkzMDQ5MTA5fQ.eyybmJ1c2ViJAifQ.hcHiVAocMBw4pg';

  Map<String, String> header = {'Cookie': '$tokenName=$tokenValue', 'x-test':'123213'};
  _webViewController.loadUrl('http://127.0.0.1:9999/2.html', headers: header);
});

iOS打开网页加载白屏,需要在ios/Runner/Info.plist中配置

<key>io.flutter.embedded_views_preview</key>
<true/>

Android也需要配置网络权限,在文件/android/app/src/main/AndroidManifest.xml中加入

<uses-permission android:name="android.permission.INTERNET"/>
<application>...</application>