我想在 fragment 中加载网页,但是有一些问题。
1.没有overriding
shouldOverrideUrlLoading
方法,网站使用默认浏览器Chrome 打开。
2.覆盖shouldOverrideUrlLoading
时,没有任何反应。只创建了新的空白 Activity 。
这是我在 Fragment
类中的 onCreateView
方法
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View resultView = inflater.inflate(R.layout.container, container, false);
if (getArguments() != null) {
String url = getArguments().getString(KEY_URL);
WebView productDetailView = (WebView)resultView.findViewById(R.id.webView);
productDetailView.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return super.shouldOverrideUrlLoading(view, url);
}
});
productDetailView.loadUrl(url);
}
return resultView;
}
targetSdkVersion
为19
并添加了INTERNET
权限,Fragment的XML文件如下。
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.ProductDetailFragment">
<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/webView"
android:layout_gravity="center" />
</FrameLayout>
有什么问题吗?
最佳答案
试试这段代码
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
webView.loadUrl(url);
并使用 FLAG_ACTIVITY_NEW_TASK 开始您的 Activity
关于android - WebView 无法在里面加载网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23198560/