Android:WebView - 在 WebView 中打开某些 URL,其余的在外部打开?

标签 android webview

这是我的代码:

public class MainActivity extends Activity {

@SuppressLint("SetJavaScriptEnabled") @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    WebView mywebview = (WebView) findViewById(R.id.webview);
    mywebview.loadUrl("http://www.shufflemylife.com/shuffle");
    WebSettings webSettings = mywebview.getSettings();
    webSettings.setJavaScriptEnabled(true);
    mywebview.setWebViewClient(new WebViewClient());

}

class MyWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if(url.contains("/shuffle")){
            Intent i = new Intent(Intent.ACTION_VIEW);
            i.setData(Uri.parse(url));
            startActivity(i);
            }
        return true;

        }
    }
    }

基本上,我希望将任何包含“/shuffle”的 url 加载到 WebView 中,并在外部浏览器中打开任何其他内容。可行吗?我离实现这个目标还有多远?

感谢您的帮助!

最佳答案

澄清一下,您应该这样编写 shouldOverrideUrlLoading 方法:

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    if (url.contains("/shuffle")) {
        mWebView.loadUrl(url);
        return false;
    } else {
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setData(Uri.parse(url));
        startActivity(intent);
        return true;
    }
}

关于Android:WebView - 在 WebView 中打开某些 URL,其余的在外部打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14665671/

相关文章:

JavaFX WebView/WebEngine 缓存外部 JavaScript

reactjs - webview_flutter javascript channel 无法在 Release模式下通信

android - 有按钮栏的 View 吗? (描述 View 的图像链接)

android - 从 SQLite 数据库流式传输音频

android - 从终端构建失败

java - 设置WebView大小

android - 在webView android中加载本地html文件

android - 自动开启GPS

android - QR 配置后系统应用程序丢失

javascript - 从 JavaFX 访问 Javascript 变量