-------

p{font-size:20px;color:red;}

uuuuuuuuuuu

package com.wgscd.gwang.myapplication;

/**

  • Created by gwang on 2017/3/14.

    */

import android.app.Activity;

import android.app.AlertDialog;

import android.app.AlertDialog.Builder;

import android.content.Context;

import android.content.DialogInterface;

import android.content.DialogInterface.OnClickListener;

import android.webkit.JavascriptInterface;

import android.webkit.WebView;

import org.json.JSONObject;

public class JsOperator {

private Context context;

public JsOperator(Context context) {
this.context = context;
} /**
* 弹出消息对话框
*/
@JavascriptInterface
public void showDialog(String message) { AlertDialog.Builder builder = new Builder(context);
builder.setMessage(message);
builder.setTitle("提示");
builder.setPositiveButton("确认", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) { }
});
builder.setNegativeButton("取消", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.create().show();
} @JavascriptInterface
public void getPageResult(String pageNumber) { AlertDialog.Builder builder = new Builder(context);
builder.setMessage("" + pageNumber);
builder.setTitle("提示");
builder.setPositiveButton("确认", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) { }
});
builder.setNegativeButton("取消", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.create().show();
} @JavascriptInterface
public static void showAndroid(Activity act,final WebView webView, String msg){
final String info = "来自手机内的内容!!!";
act.runOnUiThread(new Runnable(){
@Override
public void run() {
webView.loadUrl("javascript:add('"+info+"')");
}
});
} /**
* 获取登录的用户名和密码
* @return JSON格式的字符串
*/
@JavascriptInterface
public String getLoginInfo(){
try{
JSONObject login = new JSONObject();
login.put("Username", "YLD");
login.put("Password", "111"); return login.toString();
}catch(Exception e){
e.printStackTrace();
} return null;
}

}

----------MainActivity---------------------

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

btn1 = (Button) findViewById(R.id.btn1);

img = (ImageView) findViewById(R.id.img);

img2 = (ImageView) findViewById(R.id.img2);

panelLeft=(LinearLayout) findViewById(R.id.panelLeft) ;

    web=(WebView) findViewById(R.id.web);
web.getSettings().setDefaultTextEncodingName("UTF-8") ;
web.getSettings().setJavaScriptEnabled(true);
web.getSettings().setAllowFileAccess(true);
web.addJavascriptInterface(new JsOperator(MainActivity.this),"JsInteraction");
//web.loadData("<html><body color='red'>test<input type='button' value='click me' onclick='showMsg()' /></body><script type=\"text/javascript\">function showMsg(){JsInteraction.showDialog(\"Login start...\");}</script></html>", "text/html", "UTF-8");
// web.loadData( getFromAssets("pageListTemplate.txt"), "text/html", "UTF-8");
String s = getFromAssets("pageListTemplate.txt");//read text from Assets
web.loadData( s, "text/html", "UTF-8");
Toast.makeText(MainActivity.this, "s:" + s, Toast.LENGTH_SHORT).show(); //shareMsg("active ttt","ttttttt","test http://www.qq.com/ 测试","/assets/1.jpg"); btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) { FrameLayout.LayoutParams ll = new FrameLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
int w=-128;
ll.setMargins(80, 0, 0, 0);
panelLeft.setVisibility(View.INVISIBLE);
// panelLeft.setLayoutParams(ll);
// panelLeft.startAnimation( a2); // JsOperator.showAndroid(act,web,"<p>g----------</p>");
sData="'<br>ffgfgff<p>ddddddddddddddddd</p>'";
web.loadUrl("javascript:add("+ sData +")"); }
}); /**
* 从Assets中读取图片
*/
private Bitmap getImageFromAssetsFile(String fileName)
{
Bitmap image = null;
AssetManager am = getResources().getAssets();
try
{
InputStream is = am.open(fileName);
image = BitmapFactory.decodeStream(is);
is.close();
}
catch (IOException e)
{
e.printStackTrace();
} return image; }

//从Assets中读取text

public String getFromAssets(String fileName){
String line="";
String Result="";
try {
InputStreamReader inputReader = new InputStreamReader( getResources().getAssets().open(fileName) );
BufferedReader bufReader = new BufferedReader(inputReader); while((line = bufReader.readLine()) != null)
Result += line; } catch (Exception e) {
e.printStackTrace();
}
return Result;
}

}

temp-2017-4-20的更多相关文章

  1. 2017/11/20 Leetcode 日记

    2017/11/14 Leetcode 日记 442. Find All Duplicates in an Array Given an array of integers, 1 ≤ a[i] ≤ n ...

  2. 2017.9.20 HTML学习总结----下拉列表标签

    接上: 1.下拉列表框<option>,<selcct> (1)解释:在表单中,通过option select标记可设计一个下拉式的列表或带有滚动条的列表, 用户可以在列表中选 ...

  3. 2017.2.20 activiti实战--第五章--用户与组及部署管理(一)用户与组

    学习资料:<Activiti实战> 第五章 用户与组及部署管理(一)用户与组 内容概览:讲解activiti中内置的一套用户.组的关系,以及如何通过API添加.删除.查询. 5.1 用户与 ...

  4. 2017.5.20欢(bei)乐(ju)赛解题报告

    预计分数:100+20+50=first 实际分数:20+0+10=gg 水灾(sliker.cpp/c/pas) 1000MS  64MB 大雨应经下了几天雨,却还是没有停的样子.土豪CCY刚从外地 ...

  5. 2017/05/20 java 基础 随笔

    static 关键字的特点 1.随着类的加载而加载 2.优先于对象存在 3.被类的所有对象共享 如果某个成员变量是被所有对象共享的,那么他就应该定义为静态的 4.可以通过类名调用 其实它本身也可以通过 ...

  6. Eclipse 2017最佳20个插件

    https://www.infoworld.com/article/2606814/development-tools/development-tools-12-eclipse-plug-ins-ev ...

  7. 2017.11.20 基于JSP+Servlet+JavaBean实现复数运算(一)

    (7)在Servlet中使用JavaBean Servlet和JavaBean都是类,在Servlet中使用JavaBean有两种方式: 1.在一个Servlet中单独使用JavaBean 一般完成的 ...

  8. 2017.10.20 jsp用户登陆界面连接数据库

    用户登陆界面 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8 ...

  9. java课后作业2017.10.20

    动手动脑1: public class Test{ public static void main(String args[]) { Foo obj1=new Foo(); }}class Foo{ ...

  10. 2017.12.20 Java中的 IO/XML学习总结 File类详细

    IO / XML 一.File类 1.定义/概念 Java是面向对象的语言,要想把数据存到文件中,就必须要有一个对象表示这个文件.File类的作用就是代表一个特定的文件或目录,并提供了若干方法对这些文 ...

随机推荐

  1. Ubuntu清理系统垃圾 命令

    请参考: 圾Ubuntu清理系统垃 Ubuntu 16.04提示boot分区空间不足解决办法

  2. 为什么选用 React 创建混合型移动应用?

    [编者按]本文作者为 14islands 联合创始人.创新 Web 开发者 David Lindkvist,主要介绍有关混合型应用搭建的方方面面.文章系国内 ITOM 管理平台 OneAPM 编译呈现 ...

  3. springCloud微服务入门

    目录 前言 Eureka 注册中心server 新建 配置 服务提供者service 新建 配置 服务消费者controller 新建 配置 使用 Feign负载均衡 前言 springCloud是一 ...

  4. 【Kettle】2、文件夹与界面介绍

    1.文件夹介绍 下载Kettle6.1解压后出现下图相关文件夹以及文件夹介绍说明: Lib:存放Kettle的核心(core)jar包.工作引擎(engine)jar包.数据库(DB) jar包.图形 ...

  5. IHttpActionResult不识别解决办法

    使用ASP.NET Web API构造基于restful风格web services,IHttpActionResult是一个很好的http结果返回接口.然而发现在vs2012开发环境中,System ...

  6. 转: C# 的结构剖析

    原文链接:http://www.cnblogs.com/jiajiayuan/archive/2011/09/20/2181582.html 本文意在巩固基础知识,并不是对其进行深入剖析,还望理解.本 ...

  7. UIWindow的windowLevel详解

    UIWindow的windowLevel详解

  8. django配置连接多个数据库,自定义表名称

    在项目tt下新建两个app,分别为app01.app02.配置app01使用default节点数据库:app02使用hvdb节点数据库(也可以配置app01下的model既使用default,也可以使 ...

  9. 我的Java之旅——答答租车系统

    今天试着写了一个新的程序,叫做"答答租车系统",是慕课网上的一个综合练习,戳我看原题. 项目要求截图如下: 我的代码(简单粗暴版): Vehicle.java public cla ...

  10. SQLServer------查询结果为空的列赋默认值

    ISNULL(字段,默认值) 如:SELECT ISNULL(name,'无名') FROM [User]