CordovaWebView에 외부 JavaScript를 삽입 할 수있는 Cordova 플러그인을 개발하려고합니다. 그러나 나는 성공할 수 없다.WebView Javascript 삽입이 Cordova 플러그인에서 작동하지 않습니다.
나는 CordovaActivity를 확장 한 MainActivity에서 똑같이 해봤지만 정상적으로 작동합니다.
Heres 내가 한 일.
WebAppInterface 클래스
private class WebAppInterface {
private final Context context;
WebAppInterface(Context context) {
this.context = context;
}
@JavascriptInterface
public void showToast(String toastMsg) {
Toast.makeText(context, toastMsg, Toast.LENGTH_SHORT).show();
}
}
사출 코드
WebSettings webSettings = ((WebView)appView.getEngine.getView()).getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.addJavascriptInterface(new WebAppInterface(webView.getContext()), "android");
myWebView.loadUrl("javascript:android.showToast('Toast 1')");
은 코르도바 오는 나는 CordovaPlugin 확장 MyPlugin라는 플러그인을 만든 및 방법을 실행 overided.
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if ("showLog".equals(action)) {
Log.d("showLog", "showLog");
return true;
}
if ("showToast".equals(action)) {
cordova.getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
WebView webView = (WebView) UnfoldPlugin.this.webView.getEngine().getView();
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new WebAppInterface(webView.getContext()), "android");
webView.loadUrl("javascript:android.showToast('Hello World')");
}
});
return true;
}
return false;
}
나는 cordova.exec 메서드를 호출하는 것처럼 UnfoldPlugin.js도 작성했습니다. "showLog"및 "showToast"액션은 모두 호출되지만 자바 스크립트 삽입을 통해 축배를 성공적으로 수행 할 수는 없습니다.
이것은 플러그인을 통해 외부 자바 스크립트 삽입을 허용하지 않는 Cordova의 문제입니까?
이 문제를 어떻게 해결할 수 있습니까? 도움.
편집
그러나 자바 스크립트 :는 Window.alert ('안녕하세요')는
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if ("showToast".equals(action)) {
cordova.getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
webView.loadUrl("javascript:window.alert('Hello World')");
}
});
callbackContext.success();
return true;
}
내가 addJavascriptInterface은 코르도바 플러그인 작동하지 않습니다 생각 작동합니다.
답변이 도움이 될까요? http://stackoverflow.com/questions/40974950/custom-cordova-plugin-creation-for-ionic2-project – Stallion
no. didnt 도움. –