• Stars
    star
    174
  • Rank 219,104 (Top 5 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created about 8 years ago
  • Updated almost 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

基于JsBridge封装的高效自带加载进度条的WebView

JsWebView

Android基于JsBridge封装的高效带加载进度的WebView 可用作简单应用内置浏览器,帮你快速开发Hybrid APP

主要功能:

  • 支持header
  • 支持进度
  • 支持自定义错误页面
  • 支持h5和native的快速交互,简单易学
  • 支持cookie同步

#UI

#Dependencies

Gradle:

root:

  repositories {
maven { url "https://jitpack.io" }
jcenter()
  }

Module:

   dependencies {
   .....
   compile 'com.tamic:browse:1.0.0'

   }

Function

   XMl

 <com.tamic.jswebview.view.ProgressBarWebView
    android:id="@+id/login_progress_webview"
    style="@style/NumberProgressBar_Default"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

 </com.tamic.jswebview.view.ProgressBarWebView>

初始化

    ProgressBarWebView  mProgressBarWebView = (ProgressBarWebView) findViewById(R.id.login_progress_webview);

设置WebViewClient

      mProgressBarWebView.setWebViewClient(new CustomWebViewClient(mProgressBarWebView.getWebView()) {
        @Override
        public String onPageError(String url) {
            //指定网络加载失败时的错误页面
            return "file:///android_asset/error.html";
        }

        @Override
        public Map<String, String> onPageHeaders(String url) {

            // 可以加入header

            return null;
        }

        
    });

    // 打开页面,也可以支持网络url
    mProgressBarWebView.loadUrl("file:///android_asset/demo.html");

回调js的方法

    // 添加hander方法名 
    mHandlers.add("login");
   // 订阅此方法key
    mProgressBarWebView.registerHandlers(mHandlers, new JsHandler() {
        @Override
        public void OnHandler(String handlerName, String responseData, CallBackFunction function) {

                String resquestData = "this native data"
                
                 // 返回数据给js
                function.onCallBack(resquestData);
           
        }
    });

调用js

    mProgressBarWebView.callHandler("callNative", "hello H5, 我是java", new JavaCallHandler() {
        @Override
        public void OnHandler(String handlerName, String jsResponseData) {
            Toast.makeText(MainActivity.this, "h5返回的数据:" + jsResponseData, Toast.LENGTH_SHORT).show();
        }
    });

发送消息给js

    mProgressBarWebView.send("hello world!", new CallBackFunction() {
        @Override
        public void onCallBack(String data) {
        
        // data 为js回传数据

            Toast.makeText(MainActivity.this, data, Toast.LENGTH_SHORT).show();

        }
    });

作者:Tamic & Yezhengnan.

介绍:http://www.jianshu.com/p/17054c21dd78

 >http://blog.csdn.net/sk719887916/article/details/52402470

More Repositories

1

Novate

A safety client by Https for android, (Android网络框架,基于Retrofit和RxJava打造的链式网络库, 支持okhttp的调用风格,又兼容Retrofit API,并支持rxJava链式操作)
Java
1,431
star
2

SkyMonitoring

Android Static FrameWork(天眼SkyMonitoring), 埋点统计SDK: 支持Activity路由途径统计,自定义事件统计,Crash日志统计。
Java
556
star
3

RetrofitClient

基于Retrofit2.x和Rxjava2.x封装的请求工具类(内含Retrofit2.x & rxjava1.x)
Java
543
star
4

FastDownloader

基于Okhttp, 结合Retrofit,使用Okio ,简化处理I/O操作,加入多种设计模式,实现基于链式的android平台多线程下载利器!
Java
421
star
5

TamicAppMonitoring

Android App 无痕迹全埋点
Java
135
star
6

FocusView

支持Android TV和电视盒子遥控器移动翻页,左右移动的FocusVIew
Java
121
star
7

TvFrameWork

TV_Framework 支持最新TV的框架,支持最新MD设计
Java
81
star
8

JsBridge-Android

Java 和 js互通框架
Java
75
star
9

TvResource-Android

Android Tv项目资源收集
66
star
10

IOS_DragGridView

仿iphone桌面,支持实时交换,长按抖动效果,删除条目,并拖动建立文件夹。
Java
53
star
11

MouseView_TV

Support remote control mouse or TV remote control into the mouse(支持遥控器操作的的鼠标和遥控器做鼠标来用),
Java
32
star
12

Autoinstall

免root自动安装APK,
Java
25
star
13

ChatMomentDemo

微信朋友圈动态,动态显示Gridviewd的条目大小,滑动查看大图,并双指缩放图片。
Java
25
star
14

PluginLoader

基于PluginFramwork的插件加载器,支持APK动态加载
Java
22
star
15

Loader

Loader实例使用, 轻松异步读取大文件
Java
15
star
16

Tamic_Retrofit

user-defined Retrofit. 剖解Retrofit源码,实现简单自定义的Retrofit的框架
Java
15
star
17

ApiMvp

Java
13
star
18

LineGridView

带分割线的GridView
Java
11
star
19

ListWidget

ListWidget sample
Java
9
star
20

FilterBar

Android 自定义多用途筛选框
Java
8
star
21

MvpCase

Java
5
star
22

JavaDaily

每日一题,打好基础,冲高薪
5
star
23

Tamicer.github.io

HTML
3
star
24

autoApk

gradle多渠道 多模块,多版本,多功能打包方案
Java
2
star
25

GlideHelper

Glide wrapper
Java
2
star
26

Javajiagoushi

进阶java大佬的路上 不迷茫
1
star
27

BaiduMap

Java
1
star
28

AIDaily

机器学习,每日一题
1
star
29

WebDaily

前端试题,每日一道
1
star