Android studio与JS交互
文章目录
- 前言
- 一、html
- 二、使用步骤
- 1.
- 2.AS
- 总结
前言
最近在使用Android Studio的WebView,有些功能要AS与JS交互。
一、html
html文件
<!DOCTYPE html>
<html>
<!--javascript-->
<head>
<meta charset="utf-8">
<title>Carson_Ho</title>
<style>
#h1 {
text-align: center;
}
</style>
<script>
// Android需要调用的方法
function callJS(str){
document.getElementById("changeText").innerHTML=".This is another paragraph => "+str;
// alert("Android调用了JS的callJS方法");
}
function callAndroid(str)
{
//调用了AS方法
Android.FunctionName("I'm "+str);
document.getElementById("changeText").innerHTML="* ************";
}
</script>
</head>
<body>
<h1 id="h1">. This is a html</h1>
<p id="changeText">* ************</p>
<button type="button" id="button1" onclick="callAndroid('JS')">JSCallAndroid</button>
</body>
</html>
二、使用步骤
1.
代
2.AS
1:
public class AndroidToJS extends Object{
private static final String TAG="AndroidToJS";
@JavascriptInterface
public void FunctionName(String str)
{
Log.e(TAG,"JS调用了Android的FunctionName方法:info=>"+str);
}
}
2:
void Initial()
{//
webView.loadUrl(url);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());
WebSettings settings=webView.getSettings();
settings.setUseWideViewPort(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ECLAIR_MR1) {
settings.setLoadWithOverviewMode(true);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.CUPCAKE) {
settings.setAllowFileAccess(true);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.CUPCAKE) {
settings.setAllowFileAccess(true);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO) {
settings.setBlockNetworkLoads(false);//
}
settings.setJavaScriptEnabled(true);
webView.addJavascriptInterface(new AndroidToJS(),"Android");
}
void testJS()
{
webView.evaluateJavascript("javascript:callJS('A')", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
Log.e("JS Mes","---value---\n"+value);
}
});
//无参数版
}
总结
这里对文章进行总结: