Я новичок в разработке android и пытаюсь исправить файл входного типа в Android webview с помощью Java. Вот код, который я использую, и я пробовал несколько вещей, но у меня ничего не работает, не могли бы вы проверить и предложить что-нибудь, что может помочь мне исправить?
Я использую некоторый код внутри shouldOverrideUrlLoading, чтобы проверить, запрошенный URL-адрес начинается с https, что означает, что это внешняя ссылка, такая как почта, телефон или значки социальных сетей, и все работает нормально, и в условии else я попытался загрузить исходный URL-адрес, но ввод файла все еще не работает.
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url == null) {
return false;
}
if (url.startsWith("market://")) {
view.getContext().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
return true;
}
if (url.startsWith("https://api")) {
view.getContext().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
return true;
}
if (url.startsWith("mailto:")) {
try {
List<String> to = new ArrayList<String>();
List<String> cc = new ArrayList<String>();
List<String> bcc = new ArrayList<String>();
String subject = null;
String body = null;
url = url.replaceFirst("mailto:", "");
String[] urlSections = url.split("&");
if (urlSections.length >= 2) {
to.addAll(Arrays.asList(urlSections[0].split(",")));
for (int i = 1; i < urlSections.length; i++) {
String urlSection = urlSections[i];
String[] keyValue = urlSection.split("=");
if (keyValue.length == 2) {
String key = keyValue[0];
String value = keyValue[1];
value = URLDecoder.decode(value, "UTF-8");
if (key.equals("cc")) {
cc.addAll(Arrays.asList(url.split(",")));
}
else if (key.equals("bcc")) {
bcc.addAll(Arrays.asList(url.split(",")));
}
else if (key.equals("subject")) {
subject = value;
}
else if (key.equals("body")) {
body = value;
}
}
}
}
else {
to.addAll(Arrays.asList(url.split(",")));
}
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("message/rfc822");
String[] dummyStringArray = new String[0]; // For list to array conversion
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, to.toArray(dummyStringArray));
if (cc.size() > 0) {
emailIntent.putExtra(android.content.Intent.EXTRA_CC, cc.toArray(dummyStringArray));
}
if (bcc.size() > 0) {
emailIntent.putExtra(android.content.Intent.EXTRA_BCC, bcc.toArray(dummyStringArray));
}
if (subject != null) {
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
}
if (body != null) {
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, body);
}
view.getContext().startActivity(emailIntent);
return true;
}
catch (UnsupportedEncodingException e) {
/* Won't happen*/
}
}
else {
view.loadUrl(url);
return true;
}
return false;
}