问题标签 [flutter-inappwebview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
14 浏览

flutter - 无论设备像素/屏幕尺寸如何,如何滚动到 web 视图页面 (flutter_inappwebview) 的完全相同位置?

我正在使用一个名为“flutter_inappwebview”的插件。它还提供了几种使用代码滚动页面的方法,我希望滚动发生并导致任何设备上的相同位置,而不管设备像素/屏幕大小如何。

在 Realme 6(1080x2400 像素)和三星 A10(720 x 1520 像素)上测试。使用网站地址“https://google.com”测试

在页面加载开始时,两个设备都显示完全相同的场景。(可能是因为 Google 主页会根据屏幕尺寸进行扩展)。

执行搜索后,我继续使用一些按钮来滚动页面,使用以下方法之一: scrollBy

滚动到

我还使用getContentHeight来获取计算的页面内容高度。

以下是我的代码:

我还在使用Get.widthGetx 包提供的 ,它提供了设备的宽度。我将它与 InAppWebView 的小部件的父级容器结合使用,宽度和高度Get.width为滚动位置。

结果是,在两台设备上按下任何按钮,我的三星设备上的页面滚动次数都比我的 Realme 设备上的多。我永远无法让页面滚动到两者看起来相同的位置,即使 InAppWebView/Container 都提供了相同或相似的大小。

我希望我的问题在我写的时候很清楚。

0 投票
0 回答
28 浏览

flutter - 如何在 Flutter WebView/InAppWebView 中设置 userAgentData?

我正在使用flutter_inappwebview。如何制作 javascript 代码navigator.userAgentDatanavigator.userAgentData.xxx接收虚假或编造的信息?由于当前的 WebView/flutter_inappwebview 似乎没有该代码。

我目前正在上课:

非常感谢任何帮助(编辑:不太顺利)

0 投票
1 回答
65 浏览

flutter - 添加包`flutter_inappwebview`时Android Studio找不到CocoaPods

将包flutter_inappwebview添加到pubspec.yaml. 它抱怨没有安装 CocoaPods。但我仍然可以使用flutter run.

说明此错误的最小项目位于https://github.com/kvutien/my_inappwebview

知道为什么吗?

我的开发配置

  • 配备 M1 Pro 芯片和 macOS 12.1 Monterey 的 Macbook Pro
  • flutter doctor输出:

如何重现错误

  • 在 Android Studio 中,创建新的 Flutter 项目
  • File > Project Structure > Project > Project SDK中设置使用的 SDK ,选择Android API 32
  • 选择一个 iOS 虚拟设备
  • 从包装盒中运行应用程序以证明它可以工作。
  • 打开将以下行pubspec.yaml添加到该部分dependencies(应该在模板代码的第 29 行),紧挨着下面sdk: flutter
  • 运行pub get以更新依赖项
  • 使用运行按钮运行应用程序

Android Studio 会抱怨

仍然可以从 Android Studio 的终端构建和运行

缺少 CocoaPods 和配置中缺少 PATH 都不是问题。

无需更改代码中的任何内容,打开 Android Studio 的终端窗格并输入flutter run. 构建将成功,应用程序将在虚拟设备中运行。

但 Android Studio 表现良好,请参阅示例flutter_inappwebviewer项目pub.dev

无需从终端运行。

为了证明它:

  • 在 Android Studio 中,创建新的 Flutter 项目
  • 如上设置项目的SDK
  • 选择一个 iOS 虚拟设备
  • main.dart用示例代码替换首字母pub.dev
  • 在中添加依赖项pubspec.yaml
  • pub get
  • 使用Run按钮构建并运行应用程序

Android Studio 不会用这段代码抱怨 CocoaPods。

说明这一点的项目位于https://github.com/kvutien/test_in_app_webview

欢迎任何解释。

0 投票
0 回答
19 浏览

flutter - Flutter InAppWebView 仅在特定加载时间后显示进度指示器

我用 Flutter InAppWebView 构建了一个混合应用程序,它只显示一个网站,而没有提示用户基本上是在与浏览器交互。

凭借快速的互联网连接,它可以完美运行。但是,当站点需要一些时间来加载时,在站点加载并呈现之前,什么都不会发生。在此加载时间内,该应用程序似乎已挂起。

当我激活 LinearProgressIndicator 时,您意识到应用程序正在加载。但是,如果互联网连接良好,网站加载速度非常快,以至于 ProgressIndicator 是一个烦人且不必要的细节。

因此,我只想在加载过程花费超过 800 毫秒的时间时才显示 ProgressIndicator。我尝试使用 Flutter 计时器来实现这一点,该计时器将变量设置为 true 以执行 onProgressChanged 中的代码。

通过这种方式,当网站快速加载时,ProgressIndicator 会被隐藏。但是如果连接不好,加载站点需要几秒钟,ProgressIndicator 只会在站点呈现之前快速弹出。因此,在加载期间,它看起来再次像应用程序已挂起。如果加载过程花费的时间超过 800 毫秒,则 ProgressIndicator 应该像正常工作一样顺利。

我希望我已经充分解释了这个问题。

提前致谢

0 投票
0 回答
24 浏览

flutter - 如何在 Flutter inappwebview 的 MyChromeSafariBrowser 选项中使用 JavaScriptChannel?

我是一名在韩国工作的初级 Flutter 工程师!我有一个关于我的项目的问题。如果您能分享此特定问题(或类似问题)的解决方案,将不胜感激。

我的问题:我想在 Flutter inappwebview 包的 MyChromeSafariBrowser() 中使用 JavaScriptChannel。可以在其中使用 JavaScriptChannel 吗?

有些人可能会建议 InAppBrowser、HeadlessInAppWebView、InAppWebView 可能是一个选项,但是,在我的情况下,我无法访问/使用。

共享隐私数据的协议页面

此 HTML 源代码的目的是什么:我们链接特定网页以获得使用隐私数据的同意。用户输入他们的签名,然后输入确认按钮。然后

JavaScript频道代码

这个 JavascriptChannel 函数将被操作。该应用程序可以从网站上获得“是或否”。然后下一步将在 App 中开始。

Flutter inappwebview 代码

0 投票
0 回答
55 浏览

html - How can I open new window in flutter inappwebview package?

I am a junior Flutter app programmer! I have a unsolved issue about Flutter inappwebview's open new tab problem. If you know the solution, please share this to me..

Problem:

I want to open phone certification in InAppBroswer. When I operate ‘PASS App’(Phone Certificate Service) , the HTML code’s specific function will be operated.(this function call window.open in HTML) on a new tab page. but, there is a blank page without any information.

Question:

How can I make a new tab on webApp page? I already check the solution that is about making new alert dialog to be a new tab. But I don’t understand why the 'openDRMOKWindow'(it's HTML code) is not working in the webappview. Please read the HTML code… and if you know the solution to open Phone certificate page on a new page, let me know the solution.

Info:

  1. If you press one of blue buttons, the Pass (phone certificate app) will be started

enter image description here

  1. The HTML code of the blue button is

본인인증

  1. openDRMOKWindow function is

    function openDRMOKWindow(type, coworker, service, a_type, kitid, client_key, machine){ window.name = "parentPage"; DRMOK_window = window.open('', 'DRMOKWindow', 'width=425, height=550, resizable=0, scrollbars=no, status=0, titlebar=0, toolbar=0, left=435, top=250' );

  2. The pass app looks like this

enter image description here

Package version: flutter_inappwebview: ^5.3.2

Flutter doctor:

Flutter (Channel stable, 2.8.1, on macOS 12.0.1 21A559 darwin-x64, locale ko-KR) • Flutter version 2.8.1 at /Users/taehunku/Downloads/flutter2.2.3 • Upstream repository https://github.com/flutter/flutter.git • Framework revision 77d935af4d (9주 전), 2021-12-16 08:37:33 -0800 • Engine revision 890a5fca2e • Dart version 2.15.1

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0) • Android SDK at /Users/taehunku/Library/Android/sdk • Platform android-32, build-tools 31.0.0 • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165) • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1) • Xcode at /Users/taehunku/Downloads/Xcode.app/Contents/Developer • CocoaPods version 1.11.2

[✓] Chrome - develop for the web • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3) • Android Studio at /Applications/Android Studio.app/Contents • Flutter plugin can be installed from: https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

[✓] VS Code (version 1.60.0) • VS Code at /Users/taehunku/Downloads/Visual Studio Code.app/Contents • Flutter extension version 3.27.0

[✓] Connected device (1 available) • Chrome (web) • chrome • web-javascript • Google Chrome 98.0.4758.80

Full HTML Code:

Dart Code:

0 投票
0 回答
9 浏览

flutter - 使用 flutter_inAppWebView,我如何以编程方式关闭 Web 视图?

我正在使用flutter_inappwebview并且我已经让它工作了,但我想以编程方式关闭 Web 视图并触发onCloseWindow以发出事件。

我尝试导入dart:html as html尝试使用的东西,html.window.close但我的 linter 似乎不喜欢那样。我得到Error: Not found: 'dart:htmlError: undefined name 窗口on top of a warning:避免在 Flutter Web 插件包之外使用纯 Web 库。`。

如何关闭此窗口以触发onCloseWindow

0 投票
0 回答
11 浏览

flutter - Flutter WebView 应用程序中所有网站的 flutter_inappwebview 中显示的奇怪警报和弹出窗口

我正在使用https://pub.dev/packages/flutter_inappwebview包在我的 Flutter 应用程序中显示 Web 内容。但是对于我正在尝试的所有网站,我都会收到奇怪的弹出窗口和警报。这些弹出窗口与我的代码或项目无关。弹出内容根本没有任何意义。在这里,我附上了一些截图。

在此处输入图像描述

在此处输入图像描述

这些不是来自 Flutter Widgets。这些在 webview 中。我在这里包括代码。我必须把全班都包括在这里,因为我需要知道我错过了哪里

0 投票
1 回答
19 浏览

flutter - 在 Flutter 中保持路由活着

我有一个颤振应用程序,可以在其中看到几张卡片。这些卡片是可点击的,并将显示一个带有自定义查看器的 InAppWebView,该查看器存在于我链接到的网站上。然而,这个 InAppWebView 的加载对应用程序来说是相当繁重的,我想尽可能多地预加载它。

很难提供很多细节,因为这是与工作相关的私人信息,所以我不能太具体。我也是这里唯一一个使用 Flutter 的人,所以不能指望同事提供任何建议。

我希望通过在后台打开它来减少 InAppWebView 的加载时间,然后只是交换到正确的路线而不是从头开始初始化它。这里的问题是 URL 会改变,但这可以在视图内部处理,而不是创建一个全新的 InAppWebView。

简而言之:如何在 Flutter 应用程序的后台创建一个小部件/路由,并在必要时切换到它?