- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 WKWebView
加载 html 页面并使用 evaluateJavaScript 执行 javascript 函数。
这是我的做法。
使用大量对 javascript 和 CSS 文件的引用加载 html 页面。
let request = URLRequest(url: "myhtmlpage.html")
webView?.load(request)
myhtmlpage.html 有对 myfunctions.js 的脚本引用
<script src="js/myfunctions.js" type="text/javascript"></script>
在 myfunctions.js 中我有一个函数调用 CalculateTax(amount)
在第一步加载 myhtmlpage.html 页面后。我有一个逻辑在计算后拉出必要的日期来计算“金额”,我使用 webView?.evaluateJavaScript(CalculateTax('\(amount)');)
在 myhtmlpage.html 上执行一个 java 脚本函数来计算税费和显示税费。
我要调试 CalculateTax(amount)
javascript函数。我使用了 safari 开发者工具并将断点放在 CalculateTax(amount)
的位置但它还没有达到临界点。任何人都知道如何调试使用 WKWebView
执行的 javascript 函数, evaluateJavaScript 方法。
最佳答案
使用消息处理程序。你将它们发布在你的 JS 中,它会将值返回给 Swift,你可以在 Xcode 中打印到控制台。
首先,确保您已设置内容 Controller 和配置:
var contentController = WKUserContentController()
var configuration = WKWebViewConfiguration()
将您自己添加为消息名称的监听器。然后将配置分配给内容 Controller ,并将 Controller 分配给 web View :
contentController.add(self, name: "YOUR_MESSAGE_NAME")
configuration.userContentController = self.contentController
webView = WKWebView(frame: self.view.bounds, configuration: self.configuration)
然后实现委托(delegate)方法监听JS回传的消息:
extension YourViewController : WKScriptMessageHandler {
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
if error != nil {
if let str = message.body as? String { // or whatever you cast to
print(str)
}
} else {
// error handling
}
}
}
然后像这样从 JS 发布消息:
// YOUR_MESSAGE_NAME needs to match what you registered for in the WKUserContentController
window.webkit.messageHandlers.YOUR_MESSAGE_NAME.postMessage(MESSAGE_CONTENTS);
关于javascript - EvaluateJavaScript 调试 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46333003/
我在这个项目中使用 swift 4。我正在尝试使用 EvaluateJavascript() 函数在 WKWebView 中运行的网页上运行 javascript。我正在尝试一个简单的警报功能来启动以
我尝试在我的主线程中使用 evaluateJavascript 方法,它工作正常。但是如果我将函数移动到我的另一个线程(我有一个服务在后台运行等待消息)。它根本不起作用。所以我假设 evaluateJ
我有以下代码: HTML + JavaScript .color1{ color: #3D8BD0; } Mensage $("#mensagem").click(function(
如何在运行时执行 javascript 函数,加载聊天窗口的函数不会执行 func webView(_ webView: WKWebView, didFinish navigation: WKNavi
我正在尝试使用新的 evaluateJavascript Android 4.4 中的方法,但我得到的只是一个空结果: webView1.evaluateJavascript("return \"te
我正在向 javascript 函数发送一个值并得到一个结果。但是,当运行以下代码时,我收到“错误域 = WKErrorDomain 代码 = 5“JavaScript 执行返回了不受支持的类型的结果
我正在尝试通过在 kitkat 之后为 android 版本调用 evaluateJavaScript() 方法并使用 loadUrl("javascript:"+javascript ); 在 ki
我有一个 UIViewController,它有一个 WKWebView,它加载一个特定的 View ,其中有一个需要自动点击的按钮。为了解决这个问题,我使用了 WKNavigationDelegat
for (int i = 0; i page ()->mainFrame ()->evaluateJavaScript (QString ("constructFileName (%1).arg (c
为 Android webView 编写了一些渲染器。尝试像这样调用一些 javascript: if (Build.VERSION.SdkInt >= BuildVersionCodes.Kitka
我正在尝试使用 WKWebView.EvaluateJavaScript(string, WKJavascriptEvaluationResult) 从我的 javascript 代码中获取一个值返回
我是 Swift 开发的新手,我有一个正在开发的混合应用程序,我已经连接了身份验证。当用户使用设备上的指纹传感器进行身份验证时,我想触发 JS 或以其他方式与 WKWebView 交互......但出
我几周来一直在尝试解决这个问题,但不知道是什么导致了这个问题。在我的项目中,我使用 Android Webview 的 evaluateJavascript() 方法,如下所示: this.r
我有一个字符串化的 JSON 对象,我想将其作为字符串传递到我的 WebView 中。如果我的 JSON 字符串是像这样的简单的一级 JSON: JSONObject object = new JSO
我对从 evaluateJavascript 和 getElementById 返回的字符串有问题,其中返回的字符串使用斜线和引号格式化。 例如,我的 webview 中有一个元素,其 Id 为 us
我正在开发 Expo 的 React Native 应用程序。我将项目弹出到 ExpoKit 并添加了 react-native-wkwebview-reborn。我遇到了这个库的一些问题,因为总是出
目标是在包含在 WKWebView 中的网页中调用回调函数。 evaluateJavaScript 在其参数包含换行符时中断,这意味着永远不会调用回调函数。 这是为什么? userContentCon
我正在使用 WKWebView加载 html 页面并使用 evaluateJavaScript 执行 javascript 函数。 这是我的做法。 使用大量对 javascript 和 CSS 文件的
我正在尝试获取 WebView 的实例,以便我可以对其调用 evaluateJavascript()。我编写了一个自定义匹配器,然后尝试将 WebView 分配给静态变量,如下所示: public
我有一个在以下环境中工作的应用程序: 单点触控 2.1 MonoDevelop 2.4.2 MacOS 10.6.8 iOS SDK 4.3 同一个应用程序,迁移到 iOS 5.0/5.1 和 Mon
我是一名优秀的程序员,十分优秀!