私のコードでは onCreateWindowRequested が機能しません...理由はわかりません....Googleを検索し、最善を尽くしました..しかし、この問題を解決できませんでした...このコードは、私に書いた。
このコードの問題は何ですか? どうか、私に解いてください。ありがとうございました。
ウェブビュー設定コード
NewWalkUIClient walkUIClient = new NewWalkUIClient(mWeb);
NewXwalkResource walkResource = new NewXwalkResource(mWeb);
mWeb.setUIClient(walkUIClient);
mWeb.setResourceClient(walkResource);
mWeb.getSettings().setLoadWithOverviewMode(true);
mWeb.getSettings().setUseWideViewPort(true);
mWeb.getSettings().setJavaScriptEnabled(true);
mWeb.getSettings().setDomStorageEnabled(true);
mWeb.getSettings().setSupportZoom(false);
mWeb.getSettings().setBuiltInZoomControls(false);
mWeb.clearCache(true);
mWeb.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
mWeb.getSettings().setSaveFormData(false);
mWeb.clearFormData();
mWeb.getSettings().setSupportMultipleWindows(true);
mWeb.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
NewWalkUIClient
public class NewWalkUIClient extends XWalkUIClient {
public NewWalkUIClient(XWalkView view) {
super(view);
}
@Override
public void onPageLoadStopped(XWalkView view, String url, LoadStatus status) {
super.onPageLoadStopped(view, url, status);
if(mWeb != null) {
mWeb.getNavigationHistory().clear();
mWeb.clearCache(true);
}
}
@Override
public void onJavascriptCloseWindow(XWalkView view) {
super.onJavascriptCloseWindow(view);
}
@Override
public boolean onCreateWindowRequested(XWalkView view, InitiateBy initiator, ValueCallback<XWalkView> callback) {
Log.d("TAG", "onCreateWindowRequested: ");
XWalkView newView = new XWalkView(thisActivity);
newView.setUIClient(new NewWalkUIClient(newView));
// other initialization like your initial XWalkView object
callback.onReceiveValue(newView);
return true;
}
}
NewXWalkResource
public class NewXwalkResource extends XWalkResourceClient {
public NewXwalkResource(XWalkView view) {
super(view);
}
@Override
public void onLoadStarted(XWalkView view, String url) {
super.onLoadStarted(view, url);
}
@Override
public void onLoadFinished(XWalkView view, String url) {
super.onLoadFinished(view, url);
}
@Override
public boolean shouldOverrideUrlLoading(XWalkView view, String url) {
if (url.startsWith("tel:")) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
intent.addCategory(Intent.CATEGORY_BROWSABLE);
intent.putExtra(Browser.EXTRA_APPLICATION_ID, appContext.getPackageName());
Intent i = new Intent(Intent.ACTION_DIAL , Uri.parse(url));
startActivity(i);
} else {
// MARK : Load Web URL
mWeb.load(url, null);
}
return true;
}
}