android Webview 打开https链接

参考这篇 解决了 打开 https链接 Android:这是一份全面 & 详细的Webview使用攻略

package com.mycompany.myapp2;


import android.content.Context;

import android.app.*;
import android.os.*;
import android.util.*;
import android.webkit.*;
import android.widget.*;
import android.view.*;
import java.io.IOException;
import android.net.http.*;

public class MainActivity extends Activity 
{
    WebView wView;
    private long exitTime = 0;
    private Button btnread;
  private Context mContext;



    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);//隐藏标题栏 在setContentView()前执行  

        setContentView(R.layout.main);
         wView=(WebView)findViewById(R.id.mainWebView1);
         wView.loadUrl("file:///mnt/sdcard/bookmark.html");

      		wView.getSettings().setJavaScriptEnabled(true);
		wView.addJavascriptInterface(new Handler(), "handler");
		wView.setWebViewClient(new WebViewClient() {
			@Override
			public void onPageFinished(WebView view, String url){
			//view.loadUrl("javascript:window.handler.show(document.body.innerHTML);");
			
			//view.loadUrl("javascript:window.handler.show(document.getElementsByTagName('html')[0].innerHTML);");
			
			view.loadUrl("javascript:var o = document.body; var input = document.createElement('textarea'); input.value =(document.getElementsByTagName('html')[0].innerHTML); input.wrap='virtual';input.rows='10';input.cols='60';o.appendChild(input); var o=(document.getElementsByTagName('html')[0].innerHTML);");
				super.onPageFinished(view, url);
			}
 @Override    
        public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {    
            handler.proceed();    //表示等待证书响应
        // handler.cancel();      //表示挂起连接,为默认方式
        // handler.handleMessage(null);    //可做其他处理
        }    
			
		});//setWebviewclient
		// 特别注意:5.1以上默认禁止了https和http混用,以下方式是开启
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
wView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
		
               btnread = (Button) findViewById(R.id.mainButton1);

        btnread.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              String detail = "";
                SDFileHelper sdHelper2 = new SDFileHelper(mContext);
                try
                {
                    String filename2 = "Test2.txt";
                    detail = sdHelper2.readFromSD(filename2);
                }
                catch(IOException e){e.printStackTrace();}
                wView.loadUrl(detail);

                Toast.makeText(getApplicationContext(), detail, Toast.LENGTH_SHORT).show();
                Toast.makeText(MainActivity.this, "Clicked", Toast.LENGTH_SHORT).show();
            }
        });

        
        
    }//end of create
    
    class Handler {
	    @JavascriptInterface
		public void show(String data) {
			Toast.makeText(MainActivity.this, "执行了handler.show����", 0).show();
			new AlertDialog.Builder(MainActivity.this).setMessage(data).create().show();
		}
	}


    @Override
    public void onBackPressed() {
        if (wView.canGoBack()) {
            wView.goBack();
        } else {
            if ((System.currentTimeMillis() - exitTime) > 2000) {
                Toast.makeText(getApplicationContext(), "再按一次退出程序",
                        Toast.LENGTH_SHORT).show();
                exitTime = System.currentTimeMillis();
            } else {
                finish();
            }

        }
    }

}

开始 没有 import android.net.http.* 报错 cannot override onReceivedSslError,no SslError entity.

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值