为什么我的浏览器会打开另一个浏览器?
Why does my Browser open another Browser?
我正在创建一个 Android 应用程序作为一个简单的浏览器。用户输入网址,然后单击按钮。在此之后,应用程序应该在 WebView 中显示网站。但是,单击该按钮后,会弹出一条通知,要求我选择一个浏览器来完成我的操作。 [弹出的选项是我默认的浏览器,mozilla等]
但是,我不想使用它们中的任何一个。我该怎么办?
这是我的 .java 文件:
package com.example.all_in_one;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.EditText;
public class SimpleBrowser extends Activity implements OnClickListener{
WebView myBrowser;
EditText URLaddress;
Button Go;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.simple_browser);
myBrowser = (WebView) findViewById(R.id.WV);
URLaddress = (EditText) findViewById(R.id.webaddress);
Go = (Button) findViewById(R.id.go);
Go.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.go:
String address = URLaddress.getText().toString();
myBrowser.loadUrl("http://" + address);
break;
}
}
}
这是我的 .xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/LL1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="5" >
<EditText
android:id="@+id/webaddress"
android:inputType="textNoSuggestions"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
/>
<Button
android:id="@+id/go"
android:text="Go"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="4"
/>
</LinearLayout>
<WebView
android:layout_height="match_parent"
android:layout_width="match_parent"
android:id="@+id/WV"
android:layout_below="@+id/LL1" />
</RelativeLayout>
我已经在我的 Manifest 文件中添加了 Internet 权限。
请帮忙。提前谢谢你。
您必须将 WebViewClient
class 对象传递给 browser.setWebViewClient(new BrowserClient())
才能在 webview 中打开链接。
private class BrowserClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.d(tag, "shouldOverrideUrlLoading");
view.loadUrl(url);
return true;
}
}
并在你的 onCreate() 调用中像这样
myBrowser.setWebViewClient(new BrowserClient());
我正在创建一个 Android 应用程序作为一个简单的浏览器。用户输入网址,然后单击按钮。在此之后,应用程序应该在 WebView 中显示网站。但是,单击该按钮后,会弹出一条通知,要求我选择一个浏览器来完成我的操作。 [弹出的选项是我默认的浏览器,mozilla等]
但是,我不想使用它们中的任何一个。我该怎么办?
这是我的 .java 文件:
package com.example.all_in_one;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.EditText;
public class SimpleBrowser extends Activity implements OnClickListener{
WebView myBrowser;
EditText URLaddress;
Button Go;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.simple_browser);
myBrowser = (WebView) findViewById(R.id.WV);
URLaddress = (EditText) findViewById(R.id.webaddress);
Go = (Button) findViewById(R.id.go);
Go.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.go:
String address = URLaddress.getText().toString();
myBrowser.loadUrl("http://" + address);
break;
}
}
}
这是我的 .xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/LL1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="5" >
<EditText
android:id="@+id/webaddress"
android:inputType="textNoSuggestions"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
/>
<Button
android:id="@+id/go"
android:text="Go"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="4"
/>
</LinearLayout>
<WebView
android:layout_height="match_parent"
android:layout_width="match_parent"
android:id="@+id/WV"
android:layout_below="@+id/LL1" />
</RelativeLayout>
我已经在我的 Manifest 文件中添加了 Internet 权限。
请帮忙。提前谢谢你。
您必须将 WebViewClient
class 对象传递给 browser.setWebViewClient(new BrowserClient())
才能在 webview 中打开链接。
private class BrowserClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.d(tag, "shouldOverrideUrlLoading");
view.loadUrl(url);
return true;
}
}
并在你的 onCreate() 调用中像这样
myBrowser.setWebViewClient(new BrowserClient());