- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将一些数据从 Activity 共享到 JavaScript,但我的所有结果都失败了,这是我当前的代码:
C#
var webView = FindViewById<WebView>(Resource.Id.webView);
webView.SetWebChromeClient(new WebChromeClient());
webView.Settings.JavaScriptCanOpenWindowsAutomatically = true;
webView.Settings.JavaScriptEnabled = true;
string script = string.Format("javascript:UpdateData('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}');", "1", "2", "3", "4", "5", "6", "7", "8", "9");
webView.LoadUrl("file:///android_asset/index.html");
if (Build.VERSION.SdkInt >= BuildVersionCodes.Kitkat)
{
webView.EvaluateJavascript(script, null);
}
else
{
webView.LoadUrl(script);
}
index.html 中的 JavaScript(我也尝试在头部和主体末尾添加代码):
<script type="text/javascript">
function UpdateData(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) {
alert("Hi");
}
</script>
AndroidManifest.xml
<?xml version="1.0" encoding"utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="Test.Test" android:versionCode="1" android:versionName="1.0">
<uses-sdk android:minSdkVersion="19" />
<application android:label="Test"></application>
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
老实说,我不知道我做错了什么,因为没有任何反应,基本网页呈现完美,但没有触发 JavaScript。有没有人以前经历过这种情况?
最佳答案
我认为问题在于您试图在加载 URL 后立即评估脚本。调用webView.LoadUrl(...)
后, WebView
需要一些时间来完全加载页面,包括包含的 <script>
.
您需要创建一个派生自 WebViewClient
的类并覆盖 OnPageFinished
方法。
public class JavaScriptWebViewClient : WebViewClient
{
public override void OnPageFinished(WebView view, string url)
{
base.OnPageFinished(view, url);
string script = string.Format("javascript:UpdateData('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}');", "1", "2", "3", "4", "5", "6", "7", "8", "9");
if (Build.VERSION.SdkInt >= BuildVersionCodes.Kitkat)
{
view.EvaluateJavascript(script, null);
}
else
{
view.LoadUrl(script);
}
}
}
然后您的原始代码需要设置网络客户端:
var webView = FindViewById<WebView>(Resource.Id.webView);
webView.SetWebChromeClient(new WebChromeClient());
webView.Settings.JavaScriptCanOpenWindowsAutomatically = true;
webView.Settings.JavaScriptEnabled = true;
//set the custom web client
webView.SetWebViewClient(new JavaScriptWebViewClient());
webView.LoadUrl("file:///android_asset/index.html");
关于javascript - Xamarin 中根本没有执行 EvaluateJavascript 或 LoadUrl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40757527/
我的 WebView 适用于 Google.com 等网站,但不会加载特定页面。 简单地显示subscribe to feedburner(我制作这个网站是为了反射(reflect)一个转换后的新闻提
我的 webview 收费从服务器查看页面 private String url = "http://192.168.33.37/gestpresenze/index.html"; @Override
我已经使用 addJavascriptInterface() 方法向 WebView 添加了一个 Javascript 接口(interface)对象,我正在尝试使用 WebView.loadUrl(
我有一个测试页面,可以为测试的每个问题从 HTML 加载数据。每当我从 HTML 中获取视频作为 iFrame 时,我都会将其解析为数据 URI,然后在 WebView 中显示该视频。我使用同一页面来
我写了一个方法来从用户那里获取地址信息,然后将其显示在谷歌的 map 上。这是我写的方法 function doRemoteMapEmployee(e) { var mapEmployeeAddres
刚刚开始使用 Electron,我希望能够使用 loadURL 加载页面,但不替换整个页面。 这里的想法是如何使用像部分/模板这样的东西,这样我就可以在顶部和底部拥有一致的布局,但将不断变化的内容引入
(首先,我要声明一下,我的专业领域是 HTML5(和 php/coldfusion),而我是 Java/Android 的初学者) 在我的 onCreateOptionsMenu 中,我有以下代码来处
我有一个从 android webview 播放音乐的应用程序,我已经自动播放到下一首歌曲,为了播放下一首歌曲,我需要在 webview 中加载新的 url。一切正常。但是当我从 webview 添加
我的 Android 应用程序有一个更新类,在同一个应用程序中,我有另一个通过 webview 打开网站的类。问题是我想让更新类加载 url 但不显示它,然后缓存它(如果可能的话,所以如果用户离线它应
我想创建一个可以在应用程序中打开网站的应用程序。所以我想使用webview。但是,当我使用“loadurl”功能时,该应用程序在手机(Android 4.2.2)上崩溃了。你知道问题出在哪里吗? 错误
我试图在 webview 中打开 url,但它在外部浏览器中打开 url。 我的代码是 public class MainActivity extends Activity { private
我知道要在 webview 中运行 javascript 函数,我们需要在 loadUrl() 中加载它。在我的程序中,当我在 loadUrl 中使用它时,一切正常 javascript 被调用,但
我有三个 fragment 。我已经从第三个 fragment 向第一个 fragment 发送了一个字符串(URL)。第一个 fragment 有一个 webView 。我想在我从第三个 fragm
我的 WebView 是这样设置的 public class Webview extends Activity { private WebView webView; @Override protect
我正在尝试加载页面,然后执行 JavaScript 代码,如下所示: webview.setWebViewClient(new WebViewClient() { @Over
当我点击 webview 页面中的按钮时出现错误。据说,当我单击按钮时,它将更改为 google 站点。以下是代码和错误:- 主 Activity .java package com.mt.nad.t
是否可以将值传递给 webView.loadUrl 中提到的 URL?像这样的?? webView.loadUrl("file:///android_asset/www/index.html#valu
当尝试在我的 Android Things webview 中加载 url 时,页面最初加载,然后使 UI 崩溃并显示一条指向 IoT FrameworkPackageStubs 的错误消息。 我在
这是我的代码: package sai.datla.game; import android.app.Activity; import android.os.Bundle; import androi
backbone.js 网站上没有 Backbone.history.loadURL 的文档 http://backbonejs.org/#History-start虽然我对它在我看过的某些应用程序中
我是一名优秀的程序员,十分优秀!