Android: 간단 한 webView 와 js 의 상호작용
Html
Carson
function callAndroid(){
// , test Android
test.hello("js android hello ");
}
function callJS(){
// , test Android
alert("Android JS callJS ");
}
// callAndroid
Activity
WebView mWebView;
Button button;
@SuppressLint("JavascriptInterface")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView =(WebView) findViewById(R.id.webview);
WebSettings webSettings = mWebView.getSettings();
// Js
webSettings.setJavaScriptEnabled(true);
// JS
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
mWebView.addJavascriptInterface(new AndroidtoJs(), "test");//AndroidtoJS js test
// JS
// :file:///android_asset/ .html
mWebView.loadUrl("file:///android_asset/javascript.html");
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
public void onClick(View v) {
// Handler
mWebView.post(new Runnable() {
@Override
public void run() {
// JS
// javascript callJS()
mWebView.loadUrl("javascript:callJS()");
}
});
}
});
// , js
// webview , webviewChromClient
// WebChromeClient JavaScript
// js Alert()
mWebView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {
AlertDialog.Builder b = new AlertDialog.Builder(MainActivity.this);
b.setTitle("Alert");
b.setMessage(message);
b.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
result.confirm();
}
});
b.setCancelable(false);
b.create().show();
return true;
}
});
}
Js 대화 형 Android 클래스
package com.wd.androidjs;
import android.util.Log;
import android.webkit.JavascriptInterface;
class AndroidtoJs extends Object{
// JS
// JS @JavascriptInterface
@JavascriptInterface
public void hello(String msg) {
Log.e("my",""+msg);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.