首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SSL错误阻止网站登录

SSL错误阻止网站登录
EN

Stack Overflow用户
提问于 2019-01-17 01:16:46
回答 2查看 4.2K关注 0票数 1

干草,

作为Xamarin的替代品,我尝试在flutter中创建了一个具有相同功能的应用程序。但是webview插件/包不能使用自签名的ssl证书。在Xamarin中,有一种方法可以处理ssl错误,同时仍然可以加载网站。

当前代码:

代码语言:javascript
运行
复制
  @override
  void initState() {
    super.initState();
    final flutterWebviewPlugin = new FlutterWebviewPlugin();
    flutterWebviewPlugin.onHttpError.skip(1000);
    flutterWebviewPlugin.launch("https url to website", hidden: true,
        allowFileURLs: true,
        appCacheEnabled: true,
        withJavascript: true,
        withLocalStorage: true,
        withZoom: true);

flutterWebviewPlugin.onHttpError.skip(1000);
flutterWebviewPlugin.onStateChanged((state) async)
{
  flutterWebviewPlugin.evalJavascript(
      "document.getElementById(\"name\").innerText = \"username\"");
  flutterWebviewPlugin.evalJavascript(
      "document.getElementById(\"password\").innerText = \"pw\"");
  flutterWebviewPlugin.evalJavascript(
      "document.getElementById(\"loginbutton\").invokeMember(\"click\")");
  var test = flutterWebviewPlugin.evalJavascript(
      "document.getElementById(\"errorbox\").innerText");
};
flutterWebviewPlugin.dispose();
flutterWebviewPlugin.close();

错误:

代码语言:javascript
运行
复制
Failed to validate the certificate chain, error: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

有没有比用java和swift编写自己的包或自定义webview更好的方法呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-17 01:53:30

在Android上,你可以修改插件。将副本克隆到本地计算机,并向flutter_webview_plugin/android/src/main/java/com/flutter_webview_plugin/BrowserClient.java添加附加覆盖

用一个简单执行handler.proceed()的实现覆盖public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error)

假设您的项目是/projects/myproject,并且您将插件克隆到了/projects/flutter_webview_plugin中。在/projects/flutter_webview_plugin/android/src/.../BrowserClient.java中进行更改。然后将项目的pubspec.yaml更新为(替换现有的flutter_webview_plugin条目):

代码语言:javascript
运行
复制
dependencies:
  flutter_webview_plugin:
    path: ../flutter_webview_plugin
票数 5
EN

Stack Overflow用户

发布于 2021-03-27 13:40:37

现在,flutter_webview_plugin有一个参数ignoreSSLErrors。示例:

代码语言:javascript
运行
复制
    return WebviewScaffold(
      url: url,
      ignoreSSLErrors: true,
      appBar: new AppBar(
        title: Text('Title'),
      ),
    );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54222165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档