Git Product home page Git Product logo

js-android-bridge's Introduction

Js-Android-bridge

js 调用android native方法。

如:

  1. js调用android相机,拍照成功后异步返回图片路径。

  2. url定义跳转Activity的路径,从html页面跳转到Activity。

  3. 打电话,发短信等。

参考了部分开源项目,Cordova等。

该项目使用Gradle构建。


##js调用native方式:

  1. prompt方式:

js端:

callAndroidSync : function (cmd, args) {//同步调用 prompt 方式
    return prompt(cmd,args);
}

native端:

@Override
public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result) {
    Log.d("XfanWebChromeClient",url+":"+ message+":"+  defaultValue+":"+  result);
    return androidApi.callAndroidSync(view, url, message, defaultValue ,result);
}
  1. JavascriptInterface方式:

js端:

AndroidJsBridge.callNative(cmd,args,key)

Native端:

public void callNative( String cmd, String agrs, String key){
      Log.d("Api", cmd + ":" + agrs + ":" + key);
      RequestContent requestContent = new RequestContent(cmd, agrs, key, webView);
      ContextQueue.reqMap.put(key,requestContent);
      androidApi.callAndroidAsync(this, requestContent);
}

##Native调用js

  1. prompt方式:
js端:
```javascript
return prompt(cmd,args)
```

Native端:
```Java
result.confirm("callAndroidSync"); 
```
  1. loadurl方式:
js端:
```javascript
function show(str){
    var doc = document.getElementById("cont");
    doc.innerHTML = str;
}
```
Native端:
```java
webView.loadUrl("javascript:show('hello')")
```

##使用该项目:

修改AndroidApi.java,CMD.java即可。


##注意

未处理webview的安全问题。

WebView中接口隐患与手机挂马利用


欢迎交流:

mail:zhuleiv5#outlook.com

JavaScript与android native相互调用

Js-Android bridge

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.