facebook twitter hatena line email

「Android/webview/ローカル表示」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(ページの作成:「*src/Activity.java import android.os.Bundle; import android.webkit.WebView; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);...」)
 
 
(同じ利用者による、間の6版が非表示)
行1: 行1:
*src/Activity.java
+
==webviewでローカルのassets内のhtmlを表示==
import android.os.Bundle;
+
import android.webkit.WebView;
+
public void onCreate(Bundle savedInstanceState) {
+
  super.onCreate(savedInstanceState);
+
  setContentView(R.layout.main);
+
  WebView webView = (WebView) findViewById(R.id.webView);
+
        String padh = "/android_asset/index.html";
+
        webView.loadUrl("file://" + padh);
+
  
*assets/index.html
+
*app/src/MainActivity.java
  <<nowiki />html><<nowiki />head><<nowiki />meta http-equiv='content-type' content='text/html;charset=UTF-8'>
+
public class MainActivity extends AppCompatActivity {
  <<nowiki />title>test</title></head><<nowiki />body>
+
    @Override
  helloworld<<nowiki />img src='ic_launcher.png'>です。<<nowiki />br />
+
    protected void onCreate(Bundle savedInstanceState) {
  <<nowiki />a href='link.html'>リンク</a>のテスト<<nowiki />br />
+
        super.onCreate(savedInstanceState);
 +
        setContentView(R.layout.activity_main);
 +
        WebView webview = new WebView(this);
 +
        webview = (WebView)activity.findViewById(R.id.webview);
 +
        webview.setWebViewClient(new WebViewClient());
 +
        webview.loadUrl("file:///android_asset/index.html");
 +
    }
 +
}
 +
 
 +
*app/src/main/assets/index.html
 +
  <html><head><meta http-equiv='content-type' content='text/html;charset=UTF-8'>
 +
  <title>test</title></head><body>
 +
  helloworld<img src='ic_launcher.png'>です。<br />
 +
  <a href='link.html'>リンク</a>のテスト<br />
 
  </body></html>
 
  </body></html>
  
*assets/ic_launcher.png
+
*app/assets/ic_launcher.png
 +
 
 +
 
 +
参考:
 +
http://growsic.com/blog/androidlocalhtml/
 +
 
 +
==appの下にassetsを入れたい場合==
 +
以下を入れるとapp/src/main/assetsでなくapp/assetsにアクセスする。
 +
*app/build.gradle
 +
android {
 +
  sourceSets{
 +
    main{
 +
      assets.srcDirs = ['assets']
 +
    }
 +
  }
 +
}
 +
==htmlをそのまま入れる場合==
 +
String summary = "<html><body>You scored <b>192</b> points.</body></html>";
 +
webview.loadData(summary, "text/html", null);
 +
 
 +
==ウェブページへのアクセス不可 net::err_file_not_foundと出る場合==
 +
appの下にassetsなどをおいてないか。main/src/assetsへ置いてるか確認。

2020年8月26日 (水) 14:53時点における最新版

webviewでローカルのassets内のhtmlを表示

  • app/src/MainActivity.java
public class MainActivity extends AppCompatActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       WebView webview = new WebView(this);
       webview = (WebView)activity.findViewById(R.id.webview);
       webview.setWebViewClient(new WebViewClient());
       webview.loadUrl("file:///android_asset/index.html");
   }
}
  • app/src/main/assets/index.html
<html><head><meta http-equiv='content-type' content='text/html;charset=UTF-8'>
<title>test</title></head><body>
helloworld<img src='ic_launcher.png'>です。
<a href='link.html'>リンク</a>のテスト
</body></html>
  • app/assets/ic_launcher.png


参考: http://growsic.com/blog/androidlocalhtml/

appの下にassetsを入れたい場合

以下を入れるとapp/src/main/assetsでなくapp/assetsにアクセスする。

  • app/build.gradle
android {
  sourceSets{
    main{
      assets.srcDirs = ['assets']
    }
  }
}

htmlをそのまま入れる場合

String summary = "<html><body>You scored 192 points.</body></html>";
webview.loadData(summary, "text/html", null);

ウェブページへのアクセス不可 net::err_file_not_foundと出る場合

appの下にassetsなどをおいてないか。main/src/assetsへ置いてるか確認。