现在,当我按下一个特定的按钮时,它会启动一个打开webView的网页的意图,而是打开一个浏览器应用程序,显示不是我想要的地址栏。
经过一些研究后我发现我可以使用shouldOverrideUrlLoading()方法来阻止这种情况发生,只是在webView中打开页面,但我不知道如何在我的代码中实现这个方法,帮助就是非常感谢!
这就是我在打开网页的课程中所拥有的:
public class Codes extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.codes);
View titleView = getWindow().findViewById(android.R.id.title);
if (titleView != null) {
ViewParent parent = titleView.getParent();
if (parent != null && (parent instanceof View)) {
View parentView = (View)parent;
parentView.setBackgroundColor(Color.rgb(228, 108, 10));
}
}
WebView codes = (WebView)findViewById(R.id.codesWebView);
codes.getSettings().setJavaScriptEnabled(true);
codes.loadUrl("http://dev10.affirmaconsulting.com:24009/keyentry");
shouldOverrideUrlLoading(codes, "http://dev10.affirmaconsulting.com:24009/keyentry");
}
}
答案 0 :(得分:6)
我遇到了同样的问题,网页没有加载到我的网页浏览器中,而是通过浏览器应用程序加载。我通过实现WebViewClient类并覆盖shouldOverrideUrlLoading方法解决了这个问题。
WebViewClient webClient = new WebViewClient()
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
return false;
}
};
webView.setWebViewClient(webClient);
以下链接证明有用: http://www.firstdroid.com/2010/08/05/override-url-loading-in-webview-android-tutorial/
答案 1 :(得分:2)
我们在其中一项活动中执行此确切任务,但未遇到此问题。这就是我们的样子:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.document_viewer_activity);
WebView wv = (WebView) findViewById(R.id.documentViewerWebview);
wv.getSettings().setJavaScriptEnabled(true);
String url = getString(R.string.document_viewer_url) +
getIntent().getExtras().getString("media");
wv.loadUrl(url);
}
布局文件中定义的webview如下所示:
<WebView
android:id="@+id/documentViewerWebview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
希望这有帮助。