enter code here
我是Android开发新手。我目前正在开发一个使用webview的应用程序。在该webview中,我传递了一个url,当url加载时,相应的页面在网页内部有一个按钮,该按钮具有退出网页的功能。我的要求是获得该按钮的点击功能。怎么可能在android中实现它。如果有人知道请帮助
<?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
public class WebviewActivity extends Activity {
WebView web;
String rooId;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
Intent intent = getIntent();
rooId = intent.getStringExtra("RoomId");
Log.e("Roominer", "Roominer" + rooId);
web = (WebView) findViewById(R.id.webView1);
WebSettings settings = web.getSettings();
settings.setJavaScriptEnabled(true);
web.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
web.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.i("", "Processing webview url click...");
view.loadUrl(url);
return true;
}
public void onPageFinished(WebView view, String url) {
Log.i("", "Finished loading URL: " + url);
}
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.LENGTH_SHORT).show();
}
}
答案 0 :(得分:1)
要将Java代码和Javascript代码链接在一起,您可以使用称为JavascriptInterface的东西
本指南将为您提供一个好主意。
https://developer.android.com/guide/webapps/webview.html
不要忘记在您想要使用的方法上方添加@JavascriptInterface注释。这是在SDK 17中实现的:
警告:如果您已将targetSdkVersion设置为17或更高,则必须将@JavascriptInterface注释添加到您希望网页代码可用的任何方法(该方法也必须公开)。如果您未提供注释,则在Android 4.2或更高版本上运行时,您的网页将无法访问该方法。
答案 1 :(得分:-1)
您可以在xml文件中定义一个按钮:
<LinearLayout 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"
android:orientation="vertical" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<WebView
android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
并在按钮处设置onClickListener:
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Put the action
}
});