大家好日子,
我正在制作一个在Android工作室中使用WebView的简单应用程序(用于练习目的)。我希望我的应用程序能够覆盖我输入/浏览的所有URL。例如,当我打开Facebook时,它将覆盖其URL,当我登录到我的帐户时,它将再次举杯我的Facebook帐户,听起来像这样。这是我的代码。我是新事物,任何建议或帮助都将受到高度赞赏。非常感谢你。
xml布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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.nevigrof.ymuc.Back_order">
<WebView
android:layout_weight="1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:focusable="true"
android:id="@+id/webview1"/>
</RelativeLayout>
Java代码
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
WebView webview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_survey_form);
webview = (WebView) findViewById(R.id.webview1);
webview.setWebViewClient(new MyWebViewClient());
openURL();
}
private void openURL() {
webview.requestFocus(View.FOCUS_DOWN | View.FOCUS_UP);
webview.loadUrl("http:/https://www.facebook.com/");
webview.getSettings().setJavaScriptEnabled(true);
String webUrl = webview.getUrl();
Toast.makeText(Back_order.this, webUrl, Toast.LENGTH_LONG).show();
}
}
答案 0 :(得分:1)
我想MyWebViewClient继承自WebViewClient;你应该覆盖 MyWebViewClient类中的onPageStarted和/或onPageFinished。
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
// Toast
}
看看:
答案 1 :(得分:0)
在您的代码中,当您首次在webview中显示facebook.com时,您只会显示一次Toast。如果webview显示另一个页面(即另一个URL),您应该添加代码以通知您。您可以使用WebViewClient.shouldOverrideUrlLoading(WebView view,String url)或其他代码来检查是否加载/加载了新页面。