내 응용 프로그램 WebView
에서 사용 하고 있으며 JavaScript alert( )
방법 을 사용 하고 있지만 작동하지 않으면 팝업이 나타나지 않습니다.
내 매니페스트 파일에 추가했습니다.
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
활동 파일에 추가했습니다.
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("file:///android_asset/demo.html");
레이아웃 xml 파일에서 추가했습니다.
<WebView
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
전체를 활성화하는 방법에 대한 단서 JavaScript
가 WebView
있습니까?
최신 정보
감사 합니다 파일
의 alert()
방법 html
이 지금 작동하고 있습니다 :).
이제이 두 가지 문제가 있습니다 WebView
:
1 : 내가 사용하고 <textarea>
난에서로드 오전 HTML 파일에서 WebView
, 그 안에 힌디어 글꼴에 쓰기를 시도,하지만 난 그것을 기호로 표시 (사각형 기호와 같은 힌디어 텍스트를 작성하려고 할 때 [])
데스크탑의 firefox 브라우저에서 똑같이하면 잘 작동합니다. 에서 여러 언어를 지원하는 방법에 대한 단서 textarea
가 WebView
있습니까?
2 : 제출을 클릭 alert()
하고 다른 자바 스크립트 에서 메소드 의 텍스트 값을 열려고 할 때 작동하지 않습니다. WebChromeClient
현재로드 된 html 페이지에만 적용 javascripts
되고 해당 페이지에서 호출 되지 않은 경우에도 의미 합니까?
답변
이 링크를 확인 하고 마지막 코멘트, 당신은 WebChromeClient
당신의 목적 을 위해 사용해야 합니다.
답변
다른 사람들이 지적했듯이 WebChromeClient를 설정 alert()
해야 작동합니다. 기본 WebChromeClient ()를 설정하는 것으로 충분합니다.
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebChromeClient(new WebChromeClient());
아래의 모든 의견에 감사드립니다. JavaScript를 활성화해야한다고 언급 한 John Smith를 포함합니다.
답변
webView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
return super.onJsAlert(view, url, message, result);
}
});
답변
다음 코드가 작동합니다.
private WebView mWebView;
final Activity activity = this;
// private Button b;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
activity.setProgress(progress * 1000);
}
});
mWebView.loadUrl("file:///android_asset/raw/NewFile1.html");
}
답변
이것으로 시도해 볼 수 있습니다.
WebView wb_previewSurvey=new WebView(this);
wb_previewSurvey.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
//Required functionality here
return super.onJsAlert(view, url, message, result);
}
});
답변
사용자로부터 URL을 숨기려면 아래와 같이 AlertDialog를 표시합니다.
myWebView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
Log.d(TAG, "onJsAlert url: " + url + "; message: " + message);
AlertDialog.Builder builder = new AlertDialog.Builder(
mContext);
builder.setMessage(message)
.setNeutralButton("OK", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int arg1) {
dialog.dismiss();
}
}).show();
result.cancel();
return true;
}
}