当前位置: 首页 > 知识库问答 >
问题:

如何在android应用程序中使用上传按钮?

史昀
2023-03-14

这个问题已经出现过好几次了,尽管似乎没有任何有效的解释。(或者也许我没有在这个叫做互联网的混乱中找到它)。。。

我正在开发一个android应用程序,它会打开一个包含上传按钮的HTML页面。它在WebView中不起作用。

我试过:http://m0s-programming.blogspot.in/2011/02/file-upload-in-through-webview-on.html

但是eclipse警告说,“openFileChooser(ValueCallback uploadMsg)从未在本地使用”。该应用程序应与Android 2.2(API 8)及以上版本兼容。

它给一些错误,我猜是由于错误的放置WebView.setWebChromeClient(新的CustomWebChromeClient()

有人能帮我吗?

共有2个答案

凌翔宇
2023-03-14

一些设备上载按钮不活动使用像三星s4和注3

柯乐童
2023-03-14

这里回答了一个关于文件上传的类似问题:WebView中的文件上传。

此外,不同版本的Android需要不同的方法:https://stackoverflow.com/posts/12746435/edit

以下是活动的完整且自给自足的代码:

public class FileAttachmentActivity extends Activity {

    private ValueCallback<Uri> mUploadMessage;
    private final static int FILECHOOSER_RESULTCODE = 1;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        WebView wv = new WebView(this);
        wv.setWebViewClient(new WebViewClient());
        wv.setWebChromeClient(new WebChromeClient() {
            //The undocumented magic method override  
            //Eclipse will swear at you if you try to put @Override here  
            public void openFileChooser(ValueCallback<Uri> uploadMsg) {
                FileAttachmentActivity.this.showAttachmentDialog(uploadMsg);
            }

            // For Android > 3.x
            public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType) {
                FileAttachmentActivity.this.showAttachmentDialog(uploadMsg);
            }

            // For Android > 4.1
            public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) {
                FileAttachmentActivity.this.showAttachmentDialog(uploadMsg);
            }
        });

        this.setContentView(wv);

        wv.loadUrl("https://dl.dropbox.com/u/8047386/posttest.htm");

    }

    private void showAttachmentDialog(ValueCallback<Uri> uploadMsg) {
        this.mUploadMessage = uploadMsg;

        Intent i = new Intent(Intent.ACTION_GET_CONTENT);
        i.addCategory(Intent.CATEGORY_OPENABLE);
        i.setType("*/*");

        this.startActivityForResult(Intent.createChooser(i, "Choose type of attachment"), FILECHOOSER_RESULTCODE);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
        if (requestCode == FILECHOOSER_RESULTCODE) {
            if (null == this.mUploadMessage) {
                return;
            }
            Uri result = intent == null || resultCode != RESULT_OK ? null : intent.getData();
            this.mUploadMessage.onReceiveValue(result);
            this.mUploadMessage = null;
        }
    }
}
 类似资料:
  • 按下后退按钮,我试图从活动中退出应用程序。但问题是在按下返回键后,刷新相同的活动2到3次,进入登录活动,不退出应用程序。有人可以帮助解决这个问题。 以下是我必须尝试退出应用程序的方式。

  • 这是我从网站上获取的JSON代码。问题是此代码没有方括号,并且在数组中没有有效值,因此我不知道如何在android应用程序中使用此代码。 {"h0":{"id": 1081,"imgtitle":{"ar_AA":"",""fa_IR":"\u0644\u062d\u0638\u0647\u0631\u0633\u06cc\u062f\u0646...","en_GB":""},"imgtext"

  • 我正在编写一个带有ExecutorService的单例类的SDK。它看起来像这样: 此SDK类用于在整个应用程序中运行任务/可运行程序,doSomething()函数用于在单个线程中排队并运行所有可运行程序。 但有一件事我搞不清楚,那就是什么时候给ExecutorService打电话。shutdown()方法。如果我这样称呼它: 它会破坏使用一个Thread的目的,因为如果在第二次调用doThin

  • 问题内容: 我的应用程序包含A,B和C这三个活动。我通过“确定”按钮从A移到B,并且我想使用Android设备的默认后退按钮从B移到A。但是,当我按下按钮时,整个应用程序将关闭。我该如何解决这个问题? 问题答案: 我怀疑您是通过“确定”按钮onclick监听器调用的。不要那样做 从活动堆栈中删除您的活动。 在这里阅读更多。

  • 我创建了一个基于Phonegap/Cordova的Android应用程序,它使用cookie,例如用于会话身份验证/自动登录。在安全审查期间,提出了这样的担忧,即如果攻击者可以控制手机,他可以读出cookie并劫持用户的会话。 有没有办法以编程方式加密设备的存储或阻止使用Android OS 4.0及更高版本访问cookie?我更喜欢(但不是坚持)一个易于与Phonegap/Cordova集成的解

  • 问题内容: 我正在尝试学习制作一个带有几个按钮的简单应用程序,每个按钮都打开另一个应用程序,从而消除了对其他应用程序的需求。我只是想不通。另外,我可以在此活动中放置多个按钮来打开另一个应用程序吗?我也找不到那个答案。 非常感谢您的帮助:D 问题答案: 希望此实现能够起作用: 唯一的事情是您必须事先安装该应用程序。