【问题标题】:how to access local data from external webpage?如何从外部网页访问本地数据?
【发布时间】:2011-07-04 03:10:36
【问题描述】:

我正在尝试从外部 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”,但它似乎不起作用。

请帮忙....

【问题讨论】:

    标签: android html import webview


    【解决方案1】:

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

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

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

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

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

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

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

    【讨论】:

    猜你喜欢
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-28
    • 2016-06-09
    • 2016-08-04
    • 2012-01-06
    相关资源
    最近更新 更多