Articles of webview

@JavascriptInterface无法parsing

我正在与Android合作,使网页与我的应用进行互动。 因此,我已经通过了文档和教程,并最终提出了这个网站 。 其中,开发人员列出你应该包括@JavascriptInterface任何你希望可以被WebView访问的function,如果没有它,Jelly Bean将无法识别该function。 我的问题是,当我把它,我得到一个错误说: @JavascriptInterface无法parsing为一个types 没有它,我的代码编译和工作正常,但我想Jelly Bean的兼容性。 我目前正在使用Android 1.6作为基础,所以它只是没有@JavascriptInterface ? 这是一个果冻豆的具体事情,这意味着我将不得不专门为果冻豆做一个程序? 任何帮助将不胜感激。 这是我完整的接口类: import android.content.Context; public class WebAppInterface{ Context mContext; /** Instantiate the interface and set the context */ WebAppInterface(Context c) { mContext = c; } /** Show a toast from the web page */ //needed for jelly bean @JavascriptInterface public void turnOff() […]

Android – 使应用程序closures后Webview DomStorage持久

我正在开发一个使用Webview来显示数据的Android应用程序。 我在webview中使用的网站使用HTML 5的localStorage API。 要启用此function,我已经设置了这样的webview设置: webview.getSettings().setDomStorageEnabled(true); webview.getSettings().setJavaScriptEnabled(true); 因此,localStorage API的作品,但是当我closures应用程序(并杀死进程),localStorage完全擦除,当我重新加载它,我的所有数据都丢失。 我的问题很简单:即使我们closures应用程序,如何使Web视图的DomStorage持续存在? 谢谢你未来的答案。

WebView loadUrl只能使用一次

编辑:我在这个项目几年前工作,不幸的是我无法validation是否有任何答案在给定的情况下工作。 我有一个WebView应该显示我们的博客很难。 初始化时,它工作得很好。 用户可以导航到WebView中的不同链接。 为了回到博客,WebView外面有一个button,它应该再次加载主博客站点。 问题是,第二次调用loadUrl之后没有任何东西被加载。 这是我的代码: private WebView wv; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.blog); wv = (WebView) findViewById(R.id.blog_webview); wv.getSettings().setJavaScriptEnabled(true); wv.setWebViewClient(new WebViewClient() { @Override public void onPageStarted(WebView view, String url, Bitmap favicon { MyLog.logDump("onPageStarted: " + url); } @Override public void onPageFinished(WebView view, String url) { MyLog.logDump("onPageFinished: " + url); } }); […]

Android的webview:防止触摸手势传递给父视图

我有一个包含许多子视图的viewpager; 每个子视图都是一个web视图。 每个webview都有一些用户可以与之交互的HTML对象; 例如,可以在滑动手势上工作的幻灯片或用户可以在HTMLcanvas上移动的可拖动的圆圈。 问题是当用户在这些HTML对象上执行一个手势时,viewpager会滚动到下一个视图。 当用户与它们交互时,我希望HTML对象能够工作(viewpager不滚动),当用户在其他地方滑动时viewpager会滚动。 我怎样才能做到这一点? PS我已经在HTML幻灯片的JavaScript中使用event.preventDefault()和event.stopPropagation() ,希望webview不会将触摸事件传递给父视图。

Google如何检测来自WebView的请求?

谷歌宣布他们将不再允许在embedded式浏览器中向Google发出OAuth请求,称为“web-views” 。 在Android中,来自WebViews的请求会获得HTTP_X_REQUESTED_WITH头HTTP_X_REQUESTED_WITH ,该头HTTP_X_REQUESTED_WITH被设置为应用程序的软件包名称。 虽然这可以被覆盖,所以可以使用WebView向服务器隐藏我们正在发出的请求。 我不知道任何其他默认的方式来做到这一点。 有没有办法检测,服务器端 – 无论客户端做什么,一个请求是从一个Android WebView。 Google如何完成这项工作?

阻止Android WebViewcaching数据

是否有可能阻止WebViewcaching/ data / data / ??? / cache / webViewCache中的数据? 我已经在WebSettings上设置了以下内容,但仍然使用caching文件夹: webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE); webSettings.setAppCacheEnabled(false); 我注意到caching文件在应用程序退出或应用程序进入后台时被删除,但我宁愿不要创build它们。 此外,我想阻止使用/ data / data / ??? / database中的webview.db&webviewCache.db。 我目前删除这样的数据库: context.deleteDatabase("webview.db"); context.deleteDatabase("webviewCache.db"); 这似乎具有预期的效果,并且文件似乎不会再次被重新使用。 假设情况是否安全?

是否有可能从WebView获取HTML代码

我想抢先获得一个网页的HTML代码,要加载到一个webView ,parsing它使用正则expression式,只显示我想要的HTML代码,而让网页仍然认为它已经加载了一切。 在WebViewClient.onLoadResource()或类似的方法有没有办法做到这一点? 编辑:我试过这个: class MyJavaScriptInterface { @SuppressWarnings("unused") public void showHTML(String html, Context context) { new AlertDialog.Builder(context) .setTitle("HTML") .setMessage(html) .setPositiveButton(android.R.string.ok, null) .setCancelable(false) .create(); pageHTML = html; } } @Override public void customizeWebView(final ServiceCommunicableActivity activity, final WebView webview, final SearchResult mRom) { mRom.setFileSize(getFileSize(mRom.getURLSuffix())); webview.getSettings().setJavaScriptEnabled(true); MyJavaScriptInterface interfaceA = new MyJavaScriptInterface(); webview.addJavascriptInterface(interfaceA, "HTMLOUT"); WebViewClient anchorWebViewClient = new WebViewClient() […]

我怎样才能以编程方式截取一个Web视图的截图,捕获整个页面?

我认为这个标题已经涵盖了很多,但是在我的活动中有一个webview。 我已经加载了一个url到webview中,我想截取整个页面的截图(无论是在视口和“折叠下”的东西)。 我有代码可以快照视口,我知道这可以在iOS中通过放大webview在快照之前完成。 我试图在这里使用相同的技术: WebView browserView = (WebView) findViewById(R.id.browserView); //Resize the webview to the height of the webpage int pageHeight = browserView.getContentHeight(); LayoutParams browserParams = browserView.getLayoutParams(); browserView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, pageHeight)); //Capture the webview as a bitmap browserView.setDrawingCacheEnabled(true); Bitmap bitmap = Bitmap.createBitmap(browserView.getDrawingCache()); browserView.setDrawingCacheEnabled(false); //Create the filename to use String randomFilenamepart = String.valueOf(new SecureRandom().nextInt(1000000)); String filename = Environment.getExternalStorageDirectory().toString() […]

Android WebView播放HTML5 / h.264 / mp4video,如何获取MediaPlayer

我有一个Activity ,这是一个WebView 。 里面有一个WebChromeClient 。 里面有几个callback函数可以返回MediaPlayer处理video的位数。 例如: @Override public void onPrepared(MediaPlayer mp) { Log.i(TAG, " ————-> onPrepared"); } 当我使用HTML <video>标记(通过注入)将一个MP4stream加载到WebView时,这些操作失败。 当我finish()活动时,logcat报告这个: 09-13 23:55:24.590: E/MediaPlayer(7949): mOnBufferingUpdateListener is null. Failed to send MEDIA_BUFFERING_UPDATE message. 09-13 23:55:24.680: E/MediaPlayer(7949): mOnBufferingUpdateListener is null. Failed to send MEDIA_BUFFERING_UPDATE message. 09-13 23:55:24.680: E/MediaPlayer(7949): mOnVideoSizeChangedListener is null. Failed to send MEDIA_SET_VIDEO_SIZE message. 09-13 […]

如何在Android应用程序的在线和离线模式下加载或检索网页?

我需要加载和检索Android设备的内部或外部内存的HTML网页。 我需要的是在Android下载和检索网页使用networking视图。 有很多类似于下载或保存网页的重复问题。 但没有任何答案帮助我。 引导我! 提前致谢。