我在WebView中显示一个网页,在网页上有一个按钮.当您单击该按钮时,应该弹出一个确认对话框,但它不会显示在我的WebView中.如果我在Android浏览器中访问同一个网页,它会弹出.任何人都知道如何处理来自WebView内部网页的弹出对话框?
我正在使用WebView加载一些包含latin-1字符的数据
String uri = Uri.encode(html);
webview.loadData(uri, "text/html", "ISO-8859-1");
Run Code Online (Sandbox Code Playgroud)
显示时,latin1字符将被奇怪的字符替换.
如果我直接在TextView中加载html(只是为了测试),就会正确显示拉丁字符.
有人可以帮忙吗?
谢谢
HTML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- some html -->
</html>
Run Code Online (Sandbox Code Playgroud) 我有一个Android应用程序,它有一个webview.当没有互联网连接时,webview将显示页面不可用.我希望尽可能让它看起来像一个应用程序,所以我不想显示这个页面.我在网上找到了一些有用的信息,教你如何隐藏或加载其他内容来覆盖它,但我真正想要的是留在当前页面和一个小弹出对话框说没有连接.基本上,当用户点击webview中的任何内容时,首先检查连接.如果没有连接,请保持原状并弹出一个对话框.
谢谢您的帮助!!
编辑:
就像我说的,我已经知道如何从在线样本检查互联网连接.我的问题是我不知道如何停止加载下一页.需要说明的是,当用户尝试转到下一页时,请检查是否存在互联网连接.如果没有连接,页面将保持原样,不会进入下一页.我希望用户能够看到他们上次加载的页面,并在网页内容仍然存在时获得通知.谢谢!
我在Android中有一个webView,我在其中打开一个html网页.但它充满了链接和图像,当我点击其中一个时,它会加载到我的webview中.我想禁用此行为,因此如果我单击链接,请不要加载它.我已经尝试过这个解决方案并为myselft编辑了一下,但没有奏效.我的webview客户端代码:
private boolean loaded = false;
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(loaded == false){
view.loadUrl(url);
loaded = true;
return true;
}else{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我的webview实现和设置.
WebView wv = (WebView) findViewById(R.id.recipeWv);
ourWebViewClient webViewClient = new ourWebViewClient();
webViewClient.shouldOverrideUrlLoading(wv, URLsave);
wv.setWebViewClient(webViewClient);
wv.setFocusableInTouchMode(false);
wv.setFocusable(false);
wv.setClickable(false);
WebSettings settings = wv.getSettings();
settings.setDefaultTextEncodingName("utf-8");
settings.setLoadWithOverviewMode(true);
settings.setBuiltInZoomControls(true);
Run Code Online (Sandbox Code Playgroud)
示例:如果用户在我的webview中打开StackOverflow主页并单击其中一个链接(如"问题"),则webview应保留在StackOverflow主页上.
我有个问题.目前,WebView 的capturePicture已弃用.
我想问一下是否有办法替换这个功能.我的意思是它可以捕获整个webview(不仅显示视图)
谢谢
我尝试了Android开发者网站上显示的示例,在WebView组件上显示网页但没有成功.模拟器显示以下错误:
网页无法访问http://developer.android.com上的网页 无法加载,因为:net :: ERR_CHACHE_MISS
到目前为止,我找不到任何解决方案,即使在查看网络上的其他主题之后.我也试过不同的链接.我不知道是否有助于理解此错误的原因,但模拟器是带有Android 5.0.1的Nexus 4 API 21.我正在使用Android Studio 1.0.
代码与示例相同:
In MainActivity.java:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.loadUrl("http://developer.android.com/");
}
Run Code Online (Sandbox Code Playgroud)
在AndroidManifest中:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<uses-permission android:name="android.permission.INTERNET" />
.....
Run Code Online (Sandbox Code Playgroud)
在视图中,我添加了相同的示例代码
示例如下:http: //developer.android.com/guide/webapps/webview.html
我正在尝试在View组件中使用WebView Component,用于我正在处理的反应本机应用程序.当我在View中嵌入WebView时,我没有看到我在WebView中显示的内容.这是本地反应的预期行为吗?
我无法让React Native WebView postMessage工作.React Native应用程序成功从Web应用程序接收post message messaget.但是,Web应用程序不会从React Native应用程序接收消息sendt.
我简单的网络应用
<html>
<body>
<button>Send post message from web</button>
<div>Post message log</div>
<textarea style="height: 50%; width: 100%;" readonly></textarea>
<script>
var log = document.querySelector("textarea");
document.querySelector("button").onclick = function() {
console.log("Send post message");
logMessage("Sending post message from web..");
window.postMessage("Post message from web", "*");
}
window.addEventListener("message", function(event) {
console.log("Received post message", event);
logMessage(event.data);
}, false);
function logMessage(message) {
log.append((new Date()) + " " + message + "\n");
}
</script>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
此Web应用程序托管在:https://popping-heat-6062.firebaseapp.com/
我简单的React Native应用程序 …
我试图通过本地加载的.html文件到WebView在阵营母语:
// load local .html file
const PolicyHTML = require('./Policy.html');
// PolicyHTML is just a number of `1`
console.log('PolicyHTML:', PolicyHTML);
// will cause an error: JSON value '1' of type NSNumber cannot be converted to NSString
<WebView html={PolicyHTML} />
Run Code Online (Sandbox Code Playgroud)
该.html文件应该作为字符串读取,而不是作为资源代表.
如何将.html文件加载到WebViewReact Native中?
顺便说一下,那些资源代表的类型是require()什么?是number吗?
在safari mobile中,触摸可以分为Apple Pencil vs other(手指/鼠标),使用:
event.touches[0].touchType === 'stylus' //pencil
event.touches[0].touchType !== 'stylus' //other
Run Code Online (Sandbox Code Playgroud)
但是,在本机webview(Apple Pencil和使用手指)中收到的所有事件都会收到:
touchType === 'direct' //inside webview, both pencil and other
Run Code Online (Sandbox Code Playgroud)
如何在Webview中检测Apple Pencil的触摸?
显然event.touches[0] > 0是另一种可能性,但这也0适用于webview中的两种类型.
(不确定这是反应原生的问题还是webviews的内置限制).
有关:
webview ×10
android ×6
react-native ×4
capture ×1
connection ×1
dialog ×1
encoding ×1
handle ×1
html ×1
html5 ×1
ios ×1
javascript ×1
popup ×1