我想在某些javascript代码执行时打开Android中的默认浏览器' window.open()'在人行横道网页视图中。
我创建了一个扩展XWalkUIClient
并覆盖onCreateWindowRequested()的类。调用window.open()
时调用此方法,这是所需的行为。但是,我不知道如何获取调用window.open()
的url参数。有谁知道如何获取网址?
收到网址后,我想使用以下代码打开此网址:
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
答案 0 :(得分:1)
您无法直接访问该网址,但在XWalkView
中使用临时XWalkUIClient
和自定义onCreateWindowRequested
,您可以实现您所追求的目标。
以下代码示例显示了如何访问onCreateWindowRequested
中的网址:
xWalkView.setUIClient(new XWalkUIClient(xWalkView) {
@Override
public boolean onCreateWindowRequested(XWalkView view, InitiateBy initiator, final ValueCallback<XWalkView> callback) {
// Create a temporary XWalkView instance and set a custom XWalkUIClient
// to it with the setUIClient method. The url is passed as a parameter to the
// XWalkUIClient.onPageLoadStarted method.
XWalkView tempView = new XWalkView(getActivity());
tempView.setUIClient(new XWalkUIClient(tempView) {
@Override
public void onPageLoadStarted(XWalkView view, String url) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
}
});
// Return the temporary XWalkView instance with the callback to start the page
// load process in tempView.
callback.onReceiveValue(tempView);
return true;
}
});