gpt4 book ai didi

android - 为什么 CordovaWebViewClient 不再适用于 Cordova 6

转载 作者:太空宇宙 更新时间:2023-11-03 12:04:41 25 4
gpt4 key购买 nike

我已经编写了自定义 webviewclient 类来覆盖 cordova 3.7 中的 onPageStarted、onPageFinished 等,它工作正常。

在下面的代码中,我将 www 目录托管到 Web 服务器,并从那里与 cordova 插件进行交互(barcodescanner、nfc、蓝牙等)。

public class MainActivity extends CordovaActivity {
private WebView webView;

@Override
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
super.init();

loadUrl("https://example.com");
}

public class CustomCordovaWebViewClient extends CordovaWebViewClient {

public CustomCordovaWebViewClient(CordovaInterface cordova, CordovaWebView view) {
super(cordova, view);
}

@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
Log.i("CSP Log", "onPageStarted: " + url);
}

@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
Log.i("CSP Log", "onPageFinished: " + url);
}

@Override
public void doUpdateVisitedHistory(WebView view, String url, boolean isReload){
super.doUpdateVisitedHistory(view, url, isReload);
}

@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
}

}

}

一年后,我已将项目从 cordova 3.7 迁移到 cordova 6,但我发现上面的代码已损坏,如 CordovaWebViewClient、super.onPageStarted 等 无法解析符号。我还尝试了 CordovaWebViewImpl 并把自己弄糊涂了。

在谷歌上大量搜索后,我找到了大部分在 2011-14 年给出的解决方案,这些解决方案不适用。我找不到有用的 cordova 文档。

最佳答案

它被替换为 SystemWebViewClient

你应该这样做:

SystemWebView wv = (SystemWebView)appView.getView();
wv.setWebViewClient(new SystemWebViewClient((SystemWebViewEngine)appView.getEngine()){
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
Log.i("CSP Log", "onPageStarted: " + url);
}

@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
Log.i("CSP Log", "onPageFinished: " + url);
}

@Override
public void doUpdateVisitedHistory(WebView view, String url, boolean isReload){
super.doUpdateVisitedHistory(view, url, isReload);
}

@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
}
});

关于android - 为什么 CordovaWebViewClient 不再适用于 Cordova 6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37432072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com