android - 如何从外部网页访问本地数据?

标签 android html import webview

我正在尝试从外部 HTML 文件访问 assets/css 中的数据。

过程是这样的:

<html> 
<head>
<meta name="viewport" content="target-densitydpi=device-dpi, width=device-width, height=device-height, user-scalable=yes" />  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title>ola</title> 

 <link rel="stylesheet" type="text/css" href="file:///android_asset/css/main.css" />
 <link rel="stylesheet" type="text/css" href="file:///android_asset/css/sch.css" />
 <script type="text/javascript" src="file:///android_asset/css/ethan.js" /> 
 <script type="text/javascript" src="scripts/allinone.js" /> 

</head> 
<body> 
  <input id="btnTest1" name="button" type="button" style="height:0px;width:0px;" /> 
</body> 
</html> 

所以这里的问题是,我实际上是使用链接调用 HTML 文件(因为 HTML 文件不在本地)。但是 main.csssch.cssethan.js 本地存在于 assets/css 文件夹中。

我想要做的是加载显然是外部的 allinone.js 并将其他三个文件加载到内部的文件中并运行脚本。

我找到了“file:///android_asset/css/main.css”,但它似乎不起作用。

请帮忙....

最佳答案

我很想知道更多关于这里用例的信息。我的理解是这样的:

  1. 您正在将外部托管的 HTML 文件加载到 Android Webview 中
  2. 您需要覆盖一些本地样式/脚本,它们不能与 HTML 一起托管在外部站点上(大概是因为您是动态生成它们的)。

如果是这样——并且考虑到您设想的使用 file://URI 的逻辑方法不起作用——似乎有两个选项,每个选项都使用 webView API:

  1. 从远程源加载 HTML 文件,修改它,然后将其设置为 webView 的源。找到远程 HTML 的标记并在那里内联注入(inject)您的本地 JS/CSS。
  2. 使用“loadUrl”WebView 方法动态注入(inject)您的 CSS/Javascript(如果 #1 是一个选项,这似乎不必要地复杂)。例如:

mWebView.loadUrl("javascript:injectJavascript(js)");

其中参数“js”是您在 Android 代码中加载的一些内联 Javascript,而 injectJavascript 是远程 HTML 文件中实际将其插入 DOM 的方法。采用类似的方法插入您的 CSS ...

诚然,这些方法有点老套。理想情况下,您会使用 WebView 类的自定义方法,如“addCssToDom”或其他方法,但据我所知,没有此类方法可用。

关于android - 如何从外部网页访问本地数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5114633/

相关文章:

java junit 和异常 java.lang.NoClassDefFoundError

android - 在android中插入数据库时​​出错

html - CSS:图像和链接垂直对齐(中心)和响应图像交换

android - 如何在android应用程序中正确导入一个新项目?

python - 从导入的脚本中使用 Pygame 模块

android - 在新的 Android 开发者控制台中发布之前是否可以更新 APK 和商品列表?

Android StreetView 罗盘模式坐标系变化

html - 如何更改 WordPress 页面特定区域的 CSS 样式?

html - 在将容纳我的菜单的 div 中将 Logo 居中时遇到一些问题

java - 当选择根目录后,您有一个带有不可选中框的项目时,如何在 Eclipse 中导入项目?