【问题标题】:Show a site in application with local CSS (using Android Studio)使用本地 CSS 在应用程序中显示站点(使用 Android Studio)
【发布时间】:2015-04-13 18:15:21
【问题描述】:

我有一个专为在移动设备上展示而设计的网站。所以我决定使用 Android Studio。

我想显示我的 html 文件,该文件来自服务器,但在应用程序中有本地 cssjs 文件。换句话说,我只想从主机加载 html 并使用应用程序中存在的 css 更改其样式。我正在使用网络视图

我该怎么办?使用 iframe 或其他东西?请帮我。请为我提供正确的代码。

我的 MainAtivity.java 文件:

package com.example.z5070.myapplication;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebView;


public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        String url = "http://www.example.com";

        WebView view = (WebView) this.findViewById(R.id.webView);

        view.loadUrl(url);


    }








    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

我的activity_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

<WebView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/webView"
    android:layout_alignParentTop="true"
    android:layout_alignParentEnd="true"
 />

【问题讨论】:

标签: android html css webview


【解决方案1】:

在 Android Studio 或 eclipse 中是一样的......最简单的方法是在你的 html 文件中使用这一行。

 <link type="text/css" rel="stylesheet" href="style.css"> 

记住将 HTML 文件、CSS 文件或 JS 文件配置在同一路径中,以做“简单的方法”。但是你可以为你需要的每个类型文件创建一个特定的文件夹。

*使用资产文件夹存放文件。

【讨论】:

    【解决方案2】:

    您基本上必须通过webView.loadDataWithBaseURL() 注入您的CSS。请务必将您的.css 文件放在您的assets 文件夹中并进行相对引用。

    您可以查看THIS答案了解更多详情!

    【讨论】:

    • 我已将我的 .css 放在 assets 文件夹中。但我想在像这个站点这样的实时站点中影响这个.css。例如,我想用我的assets 文件夹中不存在的.css 更改此站点的字体。
    • 我认为你在这里唯一的机会是下载这个网站的 html 内容(不要显示它),然后注入你的 .css 然后在 webView 中显示它。换句话说 - 获取 HttpConnection 的原始响应,将其全部保存在 String(Builder) 中,编辑此字符串以插入您的 css,然后使用 webView.loadData() 加载结果。丑陋的解决方案,但无论如何你想要完成的任务有点“hacky”:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    • 2021-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-24
    相关资源
    最近更新 更多