【发布时间】:2018-10-26 17:15:03
【问题描述】:
我试图将一个简单的应用程序与一个 webView 放在一个片段中。
我正在加载的 html 有一个 mailto: 链接,单击该链接会使应用程序崩溃。我在这里查看了一些答案,他们都说您必须使用 WebViewClient 这很好,并且有各种示例,但我无法让其中任何一个工作。谁能解释一下我是怎么做的?
这是我当前的 tab.java
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebSettings;
import android.webkit.WebView;
public class Tab1Home extends Fragment {
WebView webView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.tab1home, container, false);
WebView webView = (WebView) rootView.findViewById(R.id.webviewTab1);
WebSettings settings = webView.getSettings();
settings.setDefaultTextEncodingName("utf-8");
settings.setJavaScriptEnabled(true);
webView.loadUrl("file:///android_asset/tab1/tab1.html");
return rootView;
}
}
提前致谢。
【问题讨论】:
-
能否将崩溃的堆栈跟踪添加到您的问题中?
-
我看不到任何错误,应用程序只是在模拟器中关闭,再次运行并单击它时,我收到“
一直停止”消息。 -
他们是对的,您需要使用
WebViewClient,然后您可以实现shouldOverrideUrlLoading()方法,这将让您在需要时管理特定的网址