JAVA/ANDROID - Open SecondActivity when url.endsWith(".html")) WebView



我只是想打开第二个活动(webview)当用户点击链接结束像。html。MainActivity和SecondActivity是相同的

代码如下:

if (url.endsWith(".html")) {
try {
view.getContext().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
} catch (Exception e) {
// error
}
return true;
}

当然,这会将内容打开到应用程序外的web浏览器中。你能帮我一下吗?

首先将此添加到您的manifest

<uses-permission android:name="android.permission.INTERNET"/>

并添加此活动

<activity android:name=".WebViewClientDemoActivity"/>

现在在你的mainActivity中创建intent,像这样

startActivity(new Intent(this, WebViewClientDemoActivity.class));

现在创建类

public class WebViewClientDemoActivity extends Activity {
WebView web;
@Override @SuppressLint("SetJavaScriptEnabled")
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
web =  findViewById(R.id.web_view);
web.setWebViewClient(new myWebClient());
web.getSettings().setJavaScriptEnabled(true);

//for example i used this web page
web.loadUrl("https://stackoverflow.com/questions/69032318/java-android-open-secondactivity-when-url-endswith-html-webview");
}
public static class myWebClient extends WebViewClient{
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon){
super.onPageStarted(view, url, favicon);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
view.loadUrl(url);
return true;
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
if ((keyCode == KeyEvent.KEYCODE_BACK) && web.canGoBack()){
web.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}

顺便说一下,在webview中使用模拟器有一个问题你可以用你的手机或者你可以看到这个解决方案

最新更新