java webview_android控件之webview和js与java交互

首先添加权限:

布局文件:

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".MainActivity" >

android:id="@+id/preNums"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:gravity="center"

android:padding="10dp"

android:text="当前进度:0%" />

android:id="@+id/webView1"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_below="@+id/preNums" />

html5页面代码:

手机网页

*{ padding:0px; margin:0px;}

div{ margin:0px auto;}

.mytop{ height:60px; background-color:#000000; text-align:center;}

.myfont{ color:#FFFFFF; font-size:16px; font-weight:bold; line-height:60px;}

.mytest{ background-color:#FF0000; margin:20px auto; width:100px; height:100px; border-radius:50px; box-shadow:8px 8px 8px #0000FF; line-height:100px; text-align:center;}

function ChangeDiv(){

//document.getElementById("insertDiv").innerHTML='哈哈';

//调用java代码

MyAndroid.MyFun("哈哈可以调用");

}

// 被java调用的方法

function ToJavaFun(outstr){

document.getElementById("insertDiv").innerHTML=outstr;

}

java代码:

package com.example.mywebview;

import android.os.Bundle;

import android.os.Handler;

import android.annotation.SuppressLint;

import android.app.Activity;

import android.view.Menu;

import android.webkit.JavascriptInterface;

import android.webkit.WebChromeClient;

import android.webkit.WebView;

import android.webkit.WebViewClient;

import android.widget.TextView;

import android.widget.Toast;

/*

* author:future

*

* sijienet.com

*

* */

@SuppressLint({ "JavascriptInterface", "SetJavaScriptEnabled" })

public class MainActivity extends Activity {

WebView webView;

TextView textView;

Handler handler;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

handler = new Handler();

webView = (WebView) findViewById(R.id.webView1);

textView = (TextView) findViewById(R.id.preNums);

// 开启js接口模式

webView.getSettings().setJavaScriptEnabled(true);

webView.addJavascriptInterface(new MyAndroidFun(), "MyAndroid");

webView.setWebViewClient(new MyWebClient());

webView.setWebChromeClient(new MyChrome());// 配置默认参数

webView.loadUrl("file:///android_asset/index.html");

}

class MyChrome extends WebChromeClient {

@Override

public void onProgressChanged(WebView view, int newProgress) {

// 进度更新

textView.setText("当前进度:" + newProgress + "%");

super.onProgressChanged(view, newProgress);

}

}

class MyAndroidFun {// 调用类作用于

@JavascriptInterface

public void MyFun(String msg) {

Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT)

.show();

handler.post(new Runnable() {

@Override

public void run() {

// TODO Auto-generated method stub

String outString = "我的内容";

webView.loadUrl("javascript:ToJavaFun('" + outString + "')");

}

});

}

}

@Override

public void onBackPressed() {

// TODO Auto-generated method stub

if (webView.canGoBack()) {

webView.goBack();

}

// super.onBackPressed();

}

class MyWebClient extends WebViewClient {

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

// TODO Auto-generated method stub

if (url != null && url.length() > 0) {

if (url.indexOf("http://") != -1

|| url.indexOf("https://") != -1) {// 不存在

} else {

// 添加前缀

url = "http://" + url;

}

view.loadUrl(url);

return true;

}

return super.shouldOverrideUrlLoading(view, url);

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值