1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- package me.yoqi.android.nanohttpdemo;
- import android.content.Context;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.View;
- import android.webkit.WebResourceRequest;
- import android.webkit.WebSettings;
- import android.webkit.WebView;
- import android.webkit.WebViewClient;
- import android.widget.Button;
- import androidx.appcompat.app.AppCompatActivity;
- import me.yoqi.android.nanohttpdemo.service.LocalService;
- public class MainActivity extends AppCompatActivity {
- Button btnStart;
- WebView webView;
- Context mContext;
- boolean flag = false; //按钮 httpd 状态
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- mContext = this;
- initView();
- }
- void initView() {
- btnStart = findViewById(R.id.btn_starthttpd);
- webView = findViewById(R.id.wv_main);
- WebSettings webSettings = webView.getSettings();
- webSettings.setJavaScriptEnabled(true);
- //设置自适应屏幕,两者合用
- webSettings.setUseWideViewPort(true); //将图片调整到适合webview的大小
- webSettings.setLoadWithOverviewMode(true); // 缩放至屏幕的大小
- //缩放操作
- webSettings.setSupportZoom(true); //支持缩放,默认为true。是下面那个的前提。
- webSettings.setBuiltInZoomControls(true); //设置内置的缩放控件。若为false,则该WebView不可缩放
- webSettings.setDisplayZoomControls(false); //隐藏原生的缩放控件
- //其他细节操作
- webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); //关闭webview中缓存
- webSettings.setAllowFileAccess(true); //设置可以访问文件
- webSettings.setJavaScriptCanOpenWindowsAutomatically(true); //支持通过JS打开新窗口
- webSettings.setLoadsImagesAutomatically(true); //支持自动加载图片
- webSettings.setDefaultTextEncodingName("utf-8");//设置编码格式
- btnStart.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if (!flag) {
- startHttpd();
- flag = true;
- btnStart.setText("已启动");
- webView.loadUrl("http://localhost:7600");
- webView.setWebViewClient(new WebViewClient() {
- @Override
- public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
- return super.shouldOverrideUrlLoading(view, request);
- }
- });
- } else {
- stopHttpd();
- flag = false;
- btnStart.setText("已关闭");
- }
- }
- });
- }
- void startHttpd() {
- Intent intent = new Intent(mContext, LocalService.class);
- startService(intent);
- }
- void stopHttpd() {
- Intent intent = new Intent(mContext, LocalService.class);
- stopService(intent);
- }
- }
|