这是基于Metaio sdk,但不确定问题是否依赖于它 . 我使用Creator创建了一个基于AREL的基本Android应用程序 . 在检测到标记时,我想在webview中加载URL .
但是,当检测到标记时,我会看到选择打开URL的浏览器的对话框 .
如何覆盖它并在我的应用程序中的webview中打开它?
我尝试使用公共布尔值shouldOverrideUrlLoading(WebView视图,String url),但它没有被调用 .
如何确保获取活动尝试打开的所有网址?所以我可以将调用定向到webview ..
在我的活动中,我将其置于onCreate中:
mWebView =(WebView)findViewById(R.id.webview); mWebView.setWebViewClient(new WebViewHandler());
这个外面的创造:
类WebViewHandler扩展WebViewClient {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon)
{
Log.d("LEE","ping1!!!!!"+url);
mProgress.setVisibility(View.VISIBLE);
}
@Override
public void onPageFinished(WebView view, String url)
{
Log.d("LEE","ping2!!!!!"+url);
mProgress.setVisibility(View.GONE);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
Log.d("LEE","Triggered url: !!!!!"+url);
}
}
3 回答
我通过覆盖ARELInterpreterCallback中的openWebsite()解决了这个问题......
您是否尝试使用arel.Media.openWebsite(url,false)直接在AREL中执行此操作;
http://dev.junaio.com/arel/documentationArelJS/symbols/arel.Media.html#.openWebsite
您可以直接从创建者编辑arel代码
您的覆盖中有错误 . 你应该在
shouldOverrideUrlLoading()
结束时返回false
. 这将允许WebView处理请求而不是系统 .