实现封装在安卓里的html5,跳转到指定activity

本文介绍如何在Android应用中使用WebView加载HTML5页面,并通过重写shouldOverrideUrlLoading方法来处理页面内的超链接,实现特定链接的Activity跳转及错误处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、html5内部一个超链接写为:

<a href="网站地址/op=print">洋葱</a>

2、在主activity里面主要代码为:

public WebView mWebView;
private  JSONObject newJson = new JSONObject(); 
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = (WebView) findViewById(R.id.main_web_view);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.requestFocus();
mWebView.setScrollBarStyle(WebView.SCROLLBARS_INSIDE_OVERLAY);
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub

                                  //允许读取js的内容
view.getSettings().setJavaScriptEnabled(true);
view.addJavascriptInterface(this, "nativeMethod");
//判断点击的超链接是否为打印按钮
if(url.endsWith("print")){
startActivity(new Intent(MainActivity.this,SecondActivity.class));
return true;
}
else{
view.loadUrl(url);
return true;
}
}
            
@Override
            public void onReceivedError(WebView view, int errorCode,
                            String description, String failingUrl) {
 //                   super.onReceivedError(view, errorCode, description, failingUrl);
                    mWebView.loadUrl("file:///android_asset/neterror.html");
            }
});

mWebView.setWebChromeClient(new MyWebChromeClient());
mWebView.addJavascriptInterface(new DemoJavaScriptInterface(), "device");
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("网站地址");
}

其中shouldOverrideUrlLoading(WebView view, String url) 的方法是每次都会执行的方法,只需要然后你只需要拦截‘洋葱’按钮的url,让他实现跳转acrtivity就行了。

所以实现的重点是:public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
view.getSettings().setJavaScriptEnabled(true);
view.addJavascriptInterface(this, "nativeMethod");
//判断点击的超链接是否为打印按钮
if(url.endsWith("print")){
startActivity(new Intent(MainActivity.this,SecondActivity.class));
return true;
}
else{
view.loadUrl(url);
return true;
}
}
            这一段代码。

下一步会继续实现,跳转的同时进行传递参数。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洋葱ycy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值