我试图将一些javascript函数调用在一个html页面中运行android webview.很简单,什么代码尝试下面的事情-从Android应用程序,调用一个javascript带有测试消息,它依次调用Java函数回,在Android应用程序,通过敬酒显示测试消息功能.
该javascript功能如下:
function testEcho(message){
window.JSInterface.doEchoTest(message);
}
Run Code Online (Sandbox Code Playgroud)
从WebView,我试着javascript通过以下方式调用,没有运气:
myWebView.loadUrl("javascript:testEcho(Hello World!)");
mWebView.loadUrl("javascript:(function () { " + "testEcho(Hello World!);" + "})()");
Run Code Online (Sandbox Code Playgroud)
我确实启用javascript了WebView
myWebView.getSettings().setJavaScriptEnabled(true);
// register class containing methods to be exposed to JavaScript
myWebView.addJavascriptInterface(myJSInterface, "JSInterface");
Run Code Online (Sandbox Code Playgroud)
并且继承了Java班级
public class JSInterface{
private WebView mAppView;
public JSInterface (WebView appView) {
this.mAppView = appView;
}
public void doEchoTest(String echo){
Toast toast = Toast.makeText(mAppView.getContext(), echo, Toast.LENGTH_SHORT);
toast.show();
}
}
Run Code Online (Sandbox Code Playgroud)
我花了很多时间在谷歌上搜索我可能做错了什么.我发现的所有例子都使用这种方法.有没有人在这里看错了? …
我有一个webview的问题,可以通过HTML5应用程序访问localStorage .test.html文件通知我浏览器不支持本地存储(即.webview).如果您有任何建议..
package com.test.HelloWebView;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebStorage;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class HelloWebView extends Activity {
WebView webview;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.setWebViewClient(new HelloWebViewClient());
webview.loadUrl("file:///android_asset/test.html");
WebSettings settings = webview.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDatabaseEnabled(true);
String databasePath = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath();
settings.setDatabasePath(databasePath);
webview.setWebChromeClient(new WebChromeClient() {
public void onExceededDatabaseQuota(String url, String databaseIdentifier, long currentQuota, long estimatedSize, long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序内购买的应用程序,当用户购买东西时,将一个html文件下载到我的应用程序的Documents文件夹中.
现在我必须检查这个HTML文件是否存在,如果是,则加载此HTML文件,否则加载我的默认html页面.
我怎么能这样做?随着NSFileManager我无法走出mainBundle...
我android webviews很慢.这是从手机到3.0+平板电脑的各种规格
我知道,网页视图都应该是"有限的",但我看到的网络应用与必须使用的各种手机的差距做CSS3和JQuery巫术,他们跑就好了,并迅速
所以我错过了什么,有什么myWebview.SPEEDHACK(1)我可以用来加快速度吗?
另外,有时我的webview的内容只是不加载,而不是慢慢加载,它只是不会加载.我正在测试的资产存储在本地,没有错误.
给定HTML DOM ID,如何在JavaScript/JQuery中获取元素相对于窗口的位置?这与相对于文档和偏移父项不同,因为该元素可能位于iframe或其他元素内.我需要获取元素矩形的屏幕位置(如位置和尺寸),因为它当前正在显示.如果元素当前处于屏幕外(已滚动关闭),则可以接受负值.
这适用于iPad(WebKit/WebView)应用程序.每当用户点击一个特殊链接时UIWebView,我应该打开一个弹出视图,显示有关该链接的更多信息.弹出视图需要显示一个箭头,该箭头指向调用它的屏幕部分.
自从过去几天以来,我一直在努力从WebView上传文件,但没有任何进展.我用谷歌搜索并实现了所有建议的解决方案,但都没有,例如:此处建议的解决方案,等等.
问题:我有一个带有以下代码的HTML页面来上传文件.它在Firefox等桌面浏览器和模拟器/ AVD的内置浏览器中工作正常,当我点击元素呈现的"浏览..."按钮时,浏览器会打开一个对话框,我可以在其中选择要上传的文件.
但是,在android 3.0模拟器/ AVD中,当我点击"选择文件"时,没有任何反应,没有打开文件对话框!
<form method="POST" enctype="multipart/form-data">
File to upload: <input type="file" name="uploadfile">
<input type="submit" value="Press to Upload..."> to upload the file!
</form>
Run Code Online (Sandbox Code Playgroud)
有人可以最早建议一个可能的解决方案.
我正在努力创建一个透明背景的WebView.
webView.setBackgroundColor(0x00FFFFFF);
webView.setBackgroundDrawable(myDrawable);
Run Code Online (Sandbox Code Playgroud)
然后我加载一个html页面
<body style="background-color:transparent;" ...
Run Code Online (Sandbox Code Playgroud)
WebView的背景颜色是透明的,但是一旦页面加载,它就会被html页面中的黑色背景覆盖.这只发生在Android 2.2上,它适用于android 2.1.
那么在html页面代码中添加一些内容以使其真正透明吗?
问题是旋转后的性能.WebView必须重新加载页面,这可能有点单调乏味.
每次处理方向更改而不从源重新加载页面的最佳方法是什么?
您好我正在解析xml然后将其加载到Web视图,解析后我创建了四个字符串,以便我可以将所有字符串追加到一个视图.我能够在Web视图上获得两个视图,但不能获得前两个字符串.
请用我的代码建议我,我在哪里出错,在web视图上获取格式化的html字符串的正确方法是什么.请看看我的代码并帮助我解决这个问题.
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
String chapterTitle = "";
String SubChapterTitle="";
String chapterIntro ="";
String chapterContent="";
View view = convertView;
if (convertView == null) {
// view = inflater.inflate(resourceid, null);
view = getLayoutInflater().inflate(R.layout.webviewitem, null);
}
synchronized (view) {
WebView wv = (WebView) view.findViewById(R.id.contentWebView);
WebSettings settings = wv.getSettings();
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
settings.setJavaScriptEnabled(true);
settings.setDefaultZoom(ZoomDensity.FAR);
// wv.setBackgroundColor(0);
wv.setVerticalScrollBarEnabled(false);
wv.setHorizontalScrollBarEnabled(false);
/*String txtChapTitle = Intro.book.getsecretList().get(position)
.getChtitle().toString();*/
if (!(Intro.book.getsecretList().get(position).getChtitle()
.toString().equals(""))){
chapterTitle = "<b><fontSize=4>"+Intro.book.getsecretList().get(position)
.getChtitle().toString()+"</font></b>";
} …Run Code Online (Sandbox Code Playgroud) 我目前正在我的应用程序中打开链接WebView,但我正在寻找一个选项来在Safari中打开链接.
webview ×10
android ×7
javascript ×2
background ×1
html5 ×1
ios ×1
ipad ×1
iphone ×1
jquery ×1
orientation ×1
performance ×1
safari ×1
swift ×1
transparency ×1
transparent ×1
webkit ×1
xcode ×1