Android Webview问题带有链接过滤
|
我希望有人能指出我在哪里。
我正在调用webviewclient并覆盖加载以捕获mailto链接(有效)和特定的外部URL(无效)。特定链接只是在浏览器中启动的非移动站点链接。我很想弄清楚这一点。
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.startsWith(\"mailto:\")) {
url = url.replaceFirst(\"mailto:\", \"\");
url = url.trim();
try {
url = URLDecoder.decode(url,\"UTF-8\");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
int subjectStart = url.indexOf(\"subject=\");
int subjectStop = url.indexOf(\"&body=\");
String subject = url.substring(subjectStart,subjectStop);
subject = subject.replace(\"subject=\", \"\");
String bod = url.substring(subjectStop);
bod = bod.replace(\"&body=\", \"\");
Intent i = new Intent(Intent.ACTION_SEND);
i.setType(\"test/plain\");
i.putExtra(Intent.EXTRA_SUBJECT,subject);
i.putExtra(Intent.EXTRA_TEXT, bod);
startActivity(i);
return true;
} else if ( url.contains(\"[EXTERNAL LINK I WANT TO OPEN IN BROWSER]\") == true ) {
//tried without intent and nothing
Uri uri = Uri.parse(url.toString());
Intent browserIntent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(browserIntent);
return false; //tried true here too
} else {
view.loadUrl(url);
return true;
}
}
[...]
我尝试在其中使用return true和return false进行播放,并且尝试了一个无意浏览器的版本。几乎所有用户都将在Web视图中打开链接,而不是在浏览器中打开,而那些没有,没有执行任何操作的链接。
mailto运行良好,外部链接上我缺少什么?
如果您需要它,这是我给网络客户端打电话的方式。
public class MyWebViewClient extends WebViewClient {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
switcher = (ViewSwitcher) findViewById(R.id.profileSwitcher);
WebView webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(\"[MY SITE]\");
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
webView.setWebViewClient(new MyWebViewClient()
{
public void onPageFinished(WebView view, String url) {
if (REFRESH_WEB ==1){
startScan();
REFRESH_WEB++;
}
}
});
没有找到相关结果
已邀请:
1 个回复
碧肮械淌设