问题标签 [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.
flutter - 无论设备像素/屏幕尺寸如何,如何滚动到 web 视图页面 (flutter_inappwebview) 的完全相同位置?
我正在使用一个名为“flutter_inappwebview”的插件。它还提供了几种使用代码滚动页面的方法,我希望滚动发生并导致任何设备上的相同位置,而不管设备像素/屏幕大小如何。
在 Realme 6(1080x2400 像素)和三星 A10(720 x 1520 像素)上测试。使用网站地址“https://google.com”测试
在页面加载开始时,两个设备都显示完全相同的场景。(可能是因为 Google 主页会根据屏幕尺寸进行扩展)。
执行搜索后,我继续使用一些按钮来滚动页面,使用以下方法之一: scrollBy
和 滚动到
我还使用getContentHeight来获取计算的页面内容高度。
以下是我的代码:
我还在使用Get.width
Getx 包提供的 ,它提供了设备的宽度。我将它与 InAppWebView 的小部件的父级容器结合使用,宽度和高度Get.width
为滚动位置。
结果是,在两台设备上按下任何按钮,我的三星设备上的页面滚动次数都比我的 Realme 设备上的多。我永远无法让页面滚动到两者看起来相同的位置,即使 InAppWebView/Container 都提供了相同或相似的大小。
我希望我的问题在我写的时候很清楚。
flutter - 如何在 Flutter WebView/InAppWebView 中设置 userAgentData?
我正在使用flutter_inappwebview。如何制作 javascript 代码navigator.userAgentData
或navigator.userAgentData.xxx
接收虚假或编造的信息?由于当前的 WebView/flutter_inappwebview 似乎没有该代码。
我目前正在上课:
非常感谢任何帮助(编辑:不太顺利)
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
欢迎任何解释。
flutter - Flutter InAppWebView 仅在特定加载时间后显示进度指示器
我用 Flutter InAppWebView 构建了一个混合应用程序,它只显示一个网站,而没有提示用户基本上是在与浏览器交互。
凭借快速的互联网连接,它可以完美运行。但是,当站点需要一些时间来加载时,在站点加载并呈现之前,什么都不会发生。在此加载时间内,该应用程序似乎已挂起。
当我激活 LinearProgressIndicator 时,您意识到应用程序正在加载。但是,如果互联网连接良好,网站加载速度非常快,以至于 ProgressIndicator 是一个烦人且不必要的细节。
因此,我只想在加载过程花费超过 800 毫秒的时间时才显示 ProgressIndicator。我尝试使用 Flutter 计时器来实现这一点,该计时器将变量设置为 true 以执行 onProgressChanged 中的代码。
通过这种方式,当网站快速加载时,ProgressIndicator 会被隐藏。但是如果连接不好,加载站点需要几秒钟,ProgressIndicator 只会在站点呈现之前快速弹出。因此,在加载期间,它看起来再次像应用程序已挂起。如果加载过程花费的时间超过 800 毫秒,则 ProgressIndicator 应该像正常工作一样顺利。
我希望我已经充分解释了这个问题。
提前致谢
flutter - 如何在 Flutter inappwebview 的 MyChromeSafariBrowser 选项中使用 JavaScriptChannel?
我是一名在韩国工作的初级 Flutter 工程师!我有一个关于我的项目的问题。如果您能分享此特定问题(或类似问题)的解决方案,将不胜感激。
我的问题:我想在 Flutter inappwebview 包的 MyChromeSafariBrowser() 中使用 JavaScriptChannel。可以在其中使用 JavaScriptChannel 吗?
有些人可能会建议 InAppBrowser、HeadlessInAppWebView、InAppWebView 可能是一个选项,但是,在我的情况下,我无法访问/使用。
此 HTML 源代码的目的是什么:我们链接特定网页以获得使用隐私数据的同意。用户输入他们的签名,然后输入确认按钮。然后
JavaScript频道代码
这个 JavascriptChannel 函数将被操作。该应用程序可以从网站上获得“是或否”。然后下一步将在 App 中开始。
Flutter inappwebview 代码
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:
- If you press one of blue buttons, the Pass (phone certificate app) will be started
- The HTML code of the blue button is
본인인증
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' );
The pass app looks like this
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:
flutter - 使用 flutter_inAppWebView,我如何以编程方式关闭 Web 视图?
我正在使用flutter_inappwebview并且我已经让它工作了,但我想以编程方式关闭 Web 视图并触发onCloseWindow
以发出事件。
我尝试导入dart:html as html
尝试使用的东西,html.window.close
但我的 linter 似乎不喜欢那样。我得到Error: Not found: 'dart:html
和Error: undefined name
窗口on top of a warning:
避免在 Flutter Web 插件包之外使用纯 Web 库。`。
如何关闭此窗口以触发onCloseWindow
?
flutter - Flutter WebView 应用程序中所有网站的 flutter_inappwebview 中显示的奇怪警报和弹出窗口
我正在使用https://pub.dev/packages/flutter_inappwebview包在我的 Flutter 应用程序中显示 Web 内容。但是对于我正在尝试的所有网站,我都会收到奇怪的弹出窗口和警报。这些弹出窗口与我的代码或项目无关。弹出内容根本没有任何意义。在这里,我附上了一些截图。
这些不是来自 Flutter Widgets。这些在 webview 中。我在这里包括代码。我必须把全班都包括在这里,因为我需要知道我错过了哪里
flutter - 在 Flutter 中保持路由活着
我有一个颤振应用程序,可以在其中看到几张卡片。这些卡片是可点击的,并将显示一个带有自定义查看器的 InAppWebView,该查看器存在于我链接到的网站上。然而,这个 InAppWebView 的加载对应用程序来说是相当繁重的,我想尽可能多地预加载它。
很难提供很多细节,因为这是与工作相关的私人信息,所以我不能太具体。我也是这里唯一一个使用 Flutter 的人,所以不能指望同事提供任何建议。
我希望通过在后台打开它来减少 InAppWebView 的加载时间,然后只是交换到正确的路线而不是从头开始初始化它。这里的问题是 URL 会改变,但这可以在视图内部处理,而不是创建一个全新的 InAppWebView。
简而言之:如何在 Flutter 应用程序的后台创建一个小部件/路由,并在必要时切换到它?