Cordova 6.2.3 没有 WebChromeClient,如何覆盖 onJsPrompt()?
Posted
技术标签:
【中文标题】Cordova 6.2.3 没有 WebChromeClient,如何覆盖 onJsPrompt()?【英文标题】:Cordova 6.2.3 has no WebChromeClient,how can i override the onJsPrompt()? 【发布时间】:2018-02-10 14:42:57 【问题描述】:当我将我的项目从 cordova 3 更新到 cordova 6 时,我发现没有 WebChromeClient,但是我的项目使用了这个类并覆盖了 onJsPrompt()。 现在,我应该如何基于 Cordova 6 覆盖 OnJsPrompt()
package com.qtby.gxwlc;
import org.apache.cordova.CordovaChromeClient;
import org.apache.cordova.CordovaInterface;
import org.apache.cordova.CordovaWebView;
import com.jsdemo.ClientTool;
import com.jsdemo.JsNativeFunc;
import android.content.Intent;
import android.webkit.JsPromptResult;
import android.webkit.WebView;
public class CustomerWebChromeClient extends CordovaChromeClient
public CustomerWebChromeClient(CordovaInterface ctx, CordovaWebView app)
super(ctx, app);
JsNativeFunc jsNativeFunc;
public JsNativeFunc getJsNativeFunc()
return jsNativeFunc;
public boolean isJsNativeFunc(int requestCode)
if(jsNativeFunc == null)
return false;
return jsNativeFunc.isJsNativeFunc(requestCode);
public void jsResult(int requestCode, int resultCode,
Intent intent)
jsNativeFunc.jsResult(requestCode, resultCode, intent);
@Override
public boolean onJsPrompt(WebView view, String origin, String message,
String defaultValue, JsPromptResult result)
if(ClientTool.callNativeFunc(message))
return super.onJsPrompt(view, origin, message, defaultValue, result);
return true;
return super.onJsPrompt(view, origin, message, defaultValue, result);
【问题讨论】:
【参考方案1】:你现在就这样做。
import org.apache.cordova.engine.SystemWebChromeClient;
extends SystemWebChromeClient
https://github.com/apache/cordova-android/blob/master/framework/src/org/apache/cordova/engine/SystemWebChromeClient.java
干杯
【讨论】:
以上是关于Cordova 6.2.3 没有 WebChromeClient,如何覆盖 onJsPrompt()?的主要内容,如果未能解决你的问题,请参考以下文章
没有phonegap\.cordova\config.json