最近根据公司项目需求 要在android内支持微信h5的支付功能,一时间就想到用webView直接调起。所以很快试了一下,用简单的几行代码就实现了这个需求。但是偶然间拿到一部android 7.0系统的手机,结果在测试过程中发现总是调不起来微信的api,搞了好半天不知道什么原因。最后发现貌似是操作系统把url给拦截了,所以就添加了一下代码
- mWebView.setWebViewClient(new WebViewClient(){
- @Override
- public boolean shouldOverrideUrlLoading(WebView view, String url) {
- if( url.startsWith("http:") || url.startsWith("https:") ) {
- return false;
- }
- try{
- Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
- startActivity( intent );
- }catch(Exception e){}
- return true;
- }
- });