我已经看过很多次这个问题,但仍然无法让我的代码工作.
我希望我的webview加载一些URL(比如www.google.com),然后应用一些存储的javascript assets/jstest.js,其中包含以下内容:
function test(){
document.bgColor="#00FF00"; //turns to green the background color
}
Run Code Online (Sandbox Code Playgroud)
这是我尝试加载JS的地方:
@Override
public void onPageFinished(WebView view, String url){
view.loadUrl("javascript:(function() { "
+ " document.bgColor='#FF0000';" //turns to red the background color
+ " var script=document.createElement('script'); "
+ " script.setAttribute('type','text/javascript'); "
+ " script.setAttribute('src', 'file:///android_asset/jstest.js'); "
+ " script.onload = function(){ "
+ " test(); "
+ " }; "
+ " document.getElementsByTagName('head')[0].appendChild(script); "
+ "})()");
}
Run Code Online (Sandbox Code Playgroud)
我知道这里的javascript有效,因为背景颜色实际上变为红色,但由于某种原因它不会加载jstest.js.我认为问题可能在文件路径中(我确定javascript代码的每一行都是正确的),但它看起来对我来说是正确的.该文件位于正确的文件夹中.
我错过了什么?
编辑:
由于WebResourceResponse课程仅适用于API …
我已经做了很多关于Stack Overflow和大量Google研究的研究,但我找不到任何实际工作对我来说.我希望该网站能够查看桌面网站而不是移动网站.我该怎么做呢?我希望它直接转到桌面站点.
WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.loadUrl("http://www.apotter96.webs.com/");
}
Run Code Online (Sandbox Code Playgroud) 我该如何调试/检查apk webview的元素.
我试过这个,但它只适用于chrome而不是apk.
请建议我
我的应用程序打开一个Web视图来显示HTML页面,该页面由HTTPS托管,其中包含一个图像(来自http的图像).在某些设备上,图像没有显示,但对于所有其他设备,它的工作正常.我检查了Nexus,三星s6/s4,Moto G2等多种设备.仅在三星S4/S6上,nexus图像未显示.但对于所有其他设备,它的工作正常.即使我尝试使用WI-FI,数据载体和多个操作系统版本,但没有运气.
请帮忙解决这个问题.
一些观察: -
1)在每台设备上我都收到相同的警告: - [已阻止]' page url ' 页面是通过HTTPS加载的,但是显示来自' image source '的不安全内容:此内容也应该通过HTTPS加载.
2)如果我在网络浏览器中打开相同的页面,在所有设备上正常工作.
我的守则
mWebView = (WebView) findViewById(R.id.m_web_view);
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mainUrl = bean.getUrl();
mWebView.loadUrl("javascript:window.location.reload( true )");
mWebView.loadUrl(mainUrl);
mWebView.setWebViewClient(new myWebClient());
private class myWebClient extends WebViewClient {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
//some code
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//some code
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler,
SslError error) {
handler.proceed();
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试找到一种在Android Webview中处理SSL证书错误的正确方法.我的目标是提供一种加载具有SSL证书错误的页面的方法,但是当用户尝试加载带有证书错误的URL时,让用户选择在警告他安全性之后加载该页面.
我在线程中找到的最接近的解决方案建议覆盖WebViewClient,如下所示:
webView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedSslError(final WebView view, final SslErrorHandler handler, final SslError error) {
handler.proceed();
}
});
Run Code Online (Sandbox Code Playgroud)
但是,这在没有用户同意的情况下基本上禁用了WebView中的SSL.
这里参考的是我找到解决方案的线程:
在Android中使用WIFI时,Web视图在加载URL后显示空白/白页
Android WebView阻止从https重定向到http
我继续实施了一个略有不同的版本,提示用户:
webView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedSslError(final WebView view, final SslErrorHandler handler, final SslError error) {
//Showing a first confirmation dialog
AndroidUtils.showYesNoDialog(
//First confirmation message
"WARNING - THIS PAGE IS NOT SECURE! Are you sure you want …Run Code Online (Sandbox Code Playgroud) 我需要将数据发布到Webview.
我从以下代码中找到了一些链接:
WebView webview = new WebView(this);
setContentView(webview);
String url = "http://www.example.com";
String postData = username=my_username&password=my_password";
webview.postUrl(url",EncodingUtils.getBytes(postData, "BASE64"));
Run Code Online (Sandbox Code Playgroud)
但是在我的android工作室中我看到EncodingUtils已被弃用
任何人都可以帮我解决EncodingUtils将数据发布到Android WebView的替代方案吗?
这很有效,问题在两周前就开始了.
我在Windows 10计算机上运行Chrome.我已经尝试卸载,然后在问题开始后重新安装Chrome.没变.
这是发生的事情:
1)我启动Android模拟器2)运行我的cordova应用程序3)转到chrome://检查并在模拟器上单击我正在运行的应用程序的链接.它列出正常,有效.4)DevTools窗口打开,但它没有显示所有信息.我看到屏幕的一半空白.菜单标签有时不显示,我必须最小化,然后最大化,然后他们可以显示.任何内容面板都没有滚动条,所以我实际上看不到任何有用的内容.
我试着单击屏幕右上角的齿轮图标,打开"设置",看看是否有更改的东西会修复它.没有.设置窗口打开,但它只显示左侧到设置区域的链接.设置控件的右侧应该是完全空白的.
我创建了一个新的模拟器,同样的事情发生了.
我有Android Studio 3.0.1
我尝试用shift-ctrl-j检查devtools
它显示出一些奇怪的错误.好像它正在加载自己的旧版本:
请帮助,我需要在开发期间使用它来调试我的cordova应用程序,我不知道还能做什么.谢谢.
android google-chrome android-webview google-chrome-devtools cordova
public abstract class MainActivity extends AppCompatActivity {
private static WebView web;
private WebView mWebView;
private java.lang.String url;
Boolean isInternetPresent = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo i = manager.getActiveNetworkInfo();
boolean hasConnect = (i != null && i.isConnected() && i.isAvailable());
if (hasConnect) {
} else {
}
Timer repeatTask = new Timer();
repeatTask.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
mWebView.loadUrl("http://www.smedk.ru/wp-content/uploads/files/education/rasp/1151.htm");
}
});
}
}, …Run Code Online (Sandbox Code Playgroud) 我正在尝试从服务器加载一个html页面,该页面包含一个链接到android sdcard .js文件的脚本.
Java的:
String url ="http://192.168.84.86:8080/test/maw/js_load_test.html";
this.loadUrl(url);
Run Code Online (Sandbox Code Playgroud)
js_load_test.html:
<script src="file:///sdcard/test.js"></script>
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
<script src="file:///android_asset/www/js/test.js"></script>
Run Code Online (Sandbox Code Playgroud)
test.js文件存在且js文件路径正确.但是在logcat:file:///sdcard/test.js:
03-18 13:01:12.467:E/Web控制台(26189):不允许加载本地资源:file:///sdcard/test.js at:0
文件:///android_asset/www/js/test.js:
03-18 13:01:53.467:E/Web Console(26189):不允许加载本地资源:file:///android_asset/www/js/test.js at:0
我在android中实现webview应用程序.当我尝试加载https url一到两次时,它完成了活动.Agian试图加载https网址,显示网页不可用.请在下面找到我得到的图片.

当我再次点击该网址时,它会显示网站.
我使用下面的代码加载网址.
webView = (WebView) findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("https://www.facebook.com");
webView.clearView();
webView.measure(100, 100);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@SuppressLint("NewApi")
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
super.onReceivedSslError(view, handler, error);
// this will ignore the Ssl error and will go forward to your site
handler.proceed();
error.getCertificate();
}
});
Run Code Online (Sandbox Code Playgroud)
请任何帮助人.......
提前致谢
android ×10
android-webview ×10
cordova ×2
webview ×2
debugging ×1
http-post ×1
https ×1
inspect ×1
javascript ×1
ssl ×1