package com.example.webview_change_url;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.JsResult;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.TextView;
import android.widget.Toast;
/**

// 隐藏状态栏
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

    //获得控件
    mytv=(TextView) findViewById(R.id.mytv);
    WebView webView = (WebView) findViewById(R.id.wv_webview); 
    mywebview = webView;        
    
    //Android webView加载Html5页面,JS不能调用问题click事件无效解决方法
    WebSettings s = webView.getSettings();     
    s.setBuiltInZoomControls(true);      //进行控制缩放
    //  让webview显示一列,也就是自适应页面大小 不能左右滑动,但在使用发现,只针对4.4以下有效
    s.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);     
    s.setUseWideViewPort(true);     //让Webivew支持标签viewport属性,前端html页面适配屏幕一般都会用到这个设置
    s.setLoadWithOverviewMode(true);    缩放屏幕的大小 
    s.setSavePassword(true);    //是否保存密码 
    s.setSaveFormData(true);     //设置WebView是否保存表单数据默认true保存数据
    s.setJavaScriptEnabled(true);     // enable navigator.geolocation    允许支持js

// webView.addJavascriptInterface(new AndroidAndJSInterface(),“Android”); //设置支持js调用java
s.setJavaScriptCanOpenWindowsAutomatically(true);//设置脚本是否允许自动打开弹窗默认false,不允许
s.setGeolocationEnabled(true); //定位是否可用,默认true
//可以数据库存储历史位置和Web初始权限
s.setGeolocationDatabasePath(“/data/data/org.itri.html5webview/databases/”); // enable Web Storage: localStorage, sessionStorage
s.setDomStorageEnabled(true); //启动webviewhtml5的本地存储功能,DOM存储API是否可用,默认false
webView.requestFocus(); //把输入焦点放在调用这个方法控件
webView.setScrollBarStyle(0);

    //重写alert(),避免js的alert()无效
    webView.setWebChromeClient(new WebChromeClient() {
        @Override
        public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {
            Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show();
            result.confirm();
            return true;
        }
    });

// 在Android4.0以后,会发现,只要是写在主线程(就是Activity)中的HTTP请求运行时都会报错,这是因为Android在4.0以后为了防止
// 应用的ANR(Aplication Not Response)异常,Android这个设计是为了防止网络请求时间过长而导致界面假死的情况发生。
// if (android.os.Build.VERSION.SDK_INT > 9) {
// StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
// StrictMode.setThreadPolicy(policy);
// }

    mytv.setVisibility(View.GONE);
    webView.setVisibility(View.VISIBLE);
    webView.loadUrl(url2);

//系统默认通过手机浏览器打开网页;为了能够直接通过webview显示网页,则必须设置
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// 该接口,主要是给webview提供时机,让其选择是否对URLloading进行拦截
// 关于该接口返回值,true–拦截webview加载url;false–允许webview加载url
view.loadUrl(url);
return false;
}
});

}


@Override
public void onStart(){
    super.onStart();
    //创建大小为1的固定线程scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
    //调用ScollImageTask任务,使得ScollImageTask() 从现在开始1分钟后,每2分钟切换一次
    scheduledExecutorService.scheduleWithFixedDelay(new ScollImageTask(), 1, 2, TimeUnit.MINUTES);
}

Handler handler = new Handler(){
    @Override
    public void handleMessage(Message msg)
    {
        if (state == 1) {
            mywebview.loadUrl(url2);
            Log.i(TAG, "mywebview.loadUrl(url2)......");
        } else {
            mywebview.loadUrl(url1);
            Log.i(TAG, "mywebview.loadUrl(url1)......");
        }
    }
};

// ScollImageTask任务
private class ScollImageTask implements Runnable{
@Override
public void run() {
// TODO Auto-generated method stub
if (state == 1) {
state = 2;
} else {
state = 1;
}
handler.obtainMessage().sendToTarget();
}
}

}

原文地址:https://blog.csdn.net/weixuan_/article/details/129547759

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_33602.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注