Agora que o Sketchware tem um bloco para adicionar código java diretamente no projeto, é possível habilitar o upload de arquivos em webview.
Para ativar o upload de arquivos na visualização da Web no aplicativo de sketchware, siga as etapas abaixo.
1. Insira uma visualização da Web na área VIEW no projeto de esboço. Observe o ID de webview, geralmente é webview1 .
2. Na área LOGIC do projeto, no evento onCreate, adicione o bloco add source diretamente e copie o seguinte código:
webview1.setWebChromeClient (new WebChromeClient () {
// Para 3.0+ Devices
protected void openFileChooser (ValueCallback uploadMsg, String acceptType ) {mUploadMessage = uploadMsg; Intenção i = new Intenção (Intent.ACTION_GET_CONTENT); i.addCategory (Intent.CATEGORY_OPENABLE);
i.setType ("image / *"); startActivityForResult (Intent.createChooser (i, "Navegador de Arquivos"), FILECHOOSER_RESULTCODE);
} // Para dispositivos Lollipop 5.0+ public booleano onShowFileChooser (mWebView WebView, ValueCallback <Uri []> filePathCallback, WebChromeClient.FileChooserParams fileChooserParams) { if (uploadMessage! = Null ) { uploadMessage.onReceiveValue (null); uploadMessage = null; } uploadMessage = filePathCallback; Intenção intent = fileChooserParams.createIntent (); tente { startActivityForResult (intenção, REQUEST_SELECT_FILE); } catch (ActivityNotFoundException e) { uploadMessage = null; Toast.makeText (getApplicationContext (), "Não é possível abrir o Seletor de Arquivos", Toast.LENGTH_LONG) .show (); retorna falso; } return true; }
Para o Android 4.1, apenas
protegido void openFileChooser (ValueCallback <Uri> uploadMsg, Cadeia acceptType, Captura de string) {
mUploadMessage = uploadMsg; Intenção intent = new Intent (Intent.ACTION_GET_CONTENT); intent.addCategory (Intent.CATEGORY_OPENABLE); intent.setType ("image / *"); startActivityForResult (Intent.createChooser (intenção, "Navegador de Arquivos"), FILECHOOSER_RESULTCODE);
} protected void openFileChooser (ValueCallback <Uri> uploadMsg) { mUploadMessage = uploadMsg; Intenção i = new Intent (Intent.ACTION_GET_CONTENT); i.addCategory (Intent.CATEGORY_OPENABLE); i.setType ("image / *"); startActivityForResult (Intent.createChooser (i, "Seletor de Arquivos"), FILECHOOSER_RESULTCODE); }
});
Observe que, se o ID de webview não for webview1, altere-o de acordo com o código acima. Esse código deve estar no início do onCreate antes do bloco loadUrl do WebView.
3. Adicione o bloco webview loadUrl e escreva o URL a ser carregado no webview.
4. Adicione um novo componente FilePicker fp .
5. Adicione um novo extra a mais blocos .
6. Para definir este bloco extra , use uma fonte add diretamente, bloqueie e coloque o seguinte código:
} private ValueCallback <Uri> mUploadMessage; public ValueCallback <Uri []> uploadMessage; final estático público int REQUEST_SELECT_FILE = 100;
estática final privada int FILECHOOSER_RESULTCODE = 1;
{
7. Adicione o evento FilePicker onFilesPicked . Aqui, use uma fonte add diretamente, bloqueie e coloque o seguinte código:
}
break; case REQUEST_SELECT_FILE: if (Build.VERSION.SDK_INT> = Build.VERSION_CODES.LOLLIPOP) { if (uploadMessage == null) retorno; uploadMessage.onReceiveValue (WebChromeClient.FileChooserParams.parseResult (_resultCode, _data)); uploadMessage = null; } pausa; case FILECHOOSER_RESULTCODE: if (null == mUploadMessage) { retorno; } Resultado Uri = _data == null || _resultCode! = RESULT_OK? null: _data.getData (); mUploadMessage.onReceiveValue (result); mUploadMessage = null;
se for verdade){
8. Salve e execute o projeto. Agora o usuário pode fazer upload de qualquer arquivo através do link WebView.
FAÇA JÁ O DOWNLOAD E DESENVOLVA SEUS PRÓPIOS APPS PRA ANDROID
SKETCHWARE DOWNLOAD
0 Comentários