Zac*_*ell 6 javascript android webview
我有一个WebView,只需单击一个Android按钮,就可以将一些JavaScript加载到WebView中.
我的问题是如何在加载时将Android变量传递给JavaScript.
我的当前代码将JavaScript加载到WebView中
private OnClickListener OnClick_grabit = new OnClickListener() {
public void onClick(View v) {
webView.loadUrl("javascript: function loadScript(scriptURL) {
var scriptElem = document.createElement('SCRIPT');
scriptElem.setAttribute('language', 'JavaScript');
scriptElem.setAttribute('src', scriptURL);
document.body.appendChild(scriptElem);
} loadScript('http://www.pathtojavascript/javascript.js');");
}
};
Run Code Online (Sandbox Code Playgroud)
所以我需要将一些东西传递给initialize()Android 的JavaScript .
Java类:
public class JavaScriptInterface {
Context mContext;
JavaScriptInterface(Context c) {
mContext = c;
}
@JavascriptInterface
public String getFromAndroid() {
return "This is from android.";
}
}
Run Code Online (Sandbox Code Playgroud)
Webview代码:
WebView webView = (WebView) findViewById(R.id.webview);
webView.setWebChromeClient(new WebChromeClient() {});
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDomStorageEnabled(true);
webView.addJavascriptInterface(new JavaScriptInterface(this), "Android");
Run Code Online (Sandbox Code Playgroud)
Html和javascript:
<input type="button" value="Get from android" onClick="getFromAndroid()" />
<script type="text/javascript">
var myVar = null;
function getFromAndroid() {
myVar = Android.getFromAndroid();
alert(myVar);
}
</script>
Run Code Online (Sandbox Code Playgroud)