Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

jesse01/WebViewJavascriptBridge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

16 Commits

Repository files navigation

WebViewJavascriptBridge

WebViewJavascriptBridge for Android 是 WebViewJavascriptBridge for iOS/OSX的Android 实现, 项目里的WebViewJavascriptBridge.js.txt, 及测试网页ExampleApp.html 直接来自 WebViewJavascriptBridge for iOS/OSX.

使用方法:

  1. 复制WVJBWebViewClient.java 到 Android 项目 src 下的一个子目录中, 按需修改package名称;
  2. 复制WebViewJavascriptBridge.js.txt到assets目录;
  3. 子类化 WVJBWebViewClient, 例如:

class MyWebViewClient extends WVJBWebViewClient {

	public MyWebViewClient(WebView webView) {
		//需要支持JS send 方法时
		super(webView, new WVJBWebViewClient.WVJBHandler() {
			@Override
			public void request(Object data, WVJBResponseCallback callback) {		
		 		//处理代码
			}
		});
		
 	 	/*
	 	//不需要支持JS send 方法时
 		super(webView);
 		*/ 
	}
	@Override
	public void onPageFinished(WebView view, String url) {
		//处理代码
		super.onPageFinished(view, url);
	}
	@Override
	public boolean shouldOverrideUrlLoading(WebView view, String url) {
		//处理代码
		return super.shouldOverrideUrlLoading(view, url);
	}
  1. 设置WebView webView.setWebViewClient(new MyWebViewClient(webView));

  2. 用 excuteJavascript 方法执行脚本:

excuteJavascript(script); //不需要返回值, script前不要加javascript:前缀

excuteJavascript(script, callback); //需要返回值, script前不要加javascript:前缀

executeJavascript方法的内部实现机制:

a. Android 4.4及更高版本下, 使用WebView.evaluateJavascript方法执行脚本;

b. Android 4.4以下版本若需要返回值则采用addJavascriptInterface机制实现;

c. Android 4.4以下版本若不需要返回值则使用loadUrl方法执行脚本.

  1. WebViewJavascriptBridge for iOS/OSX 的下载地址: https://github.com/marcuswestin/WebViewJavascriptBridge

About

WebViewJavascriptBridge for Android

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /