gpt4 book ai didi

java - 我希望它在应用程序中打开 url,而不是 webview

转载 作者:行者123 更新时间:2023-11-29 20:05:22 25 4
gpt4 key购买 nike

我在这里搜索过,但几乎所有的问题都是相反的..现在我问;我有一个适用于 android studio 的 webview 应用程序。它通过我的 WebView 应用程序打开位于 HTML 页面中的所有 URL。

但我想添加一些异常(exception)。例如,我想要 https://play.google.com ....在默认的 Google Play 应用程序中,而不是我的 webview 应用程序。

总结:webview 应用程序必须通过应用程序本身打开一些正常的 URL,但通过 native 另一个应用程序打开一些特殊的 URL...

我的webviewclient代码是这样的;

public class MyAppWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (Uri.parse(url).getHost().endsWith("http://play.google.com")) {

return false;
}

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
view.getContext().startActivity(intent);
return true;
}
}

最佳答案

如文档中所述 here :

If you actually want a full-blown web browser, then you probably want to invoke the Browser application with a URL Intent rather than show it with a WebView.

例如:

Uri uri = Uri.parse("http://www.example.com");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);

至于您的 Google Play 特定问题,您可以在此处找到解决方法:How to open the Google Play Store directly from my Android application?

编辑


可以拦截来自 WebView 的链接点击并实现您自己的操作。取自this answer :

WebView yourWebView; // initialize it as always...
// this is the funny part:
yourWebView.setWebViewClient(yourWebClient);

// somewhere on your code...
WebViewClient yourWebClient = new WebViewClient(){
// you tell the webclient you want to catch when a url is about to load
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
return true;
}
// here you execute an action when the URL you want is about to load
@Override
public void onLoadResource(WebView view, String url){
if( url.equals("http://cnn.com") ){
// do whatever you want
}
}
}

关于java - 我希望它在应用程序中打开 url,而不是 webview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35757338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com