【问题标题】:phonegap camera API does not fire SuccessCallBack mthod on Attach of caprured imagephonegap 相机 API 不会触发 SuccessCallBack 方法对捕获的图像进行攻击
【发布时间】:2011-05-10 08:18:35
【问题描述】:

我正在使用 Phonegap API 来捕获图像。

一旦我拍照并附上它,我的成功回调方法就不会被调用。

这是我的实现方式。

  1. 我已将 Phonegap.jar 文件添加到库中,并将其添加到构建路径中。
  2. 在我的 Main Activity 上扩展了我指定的 DroidGap 类 super.loadUrl("http://test.someU.com/Android/testandroid.html");

  3. 此页面 testandroid.html 包含对 PhoneGap.js 脚本文件的引用以及另一个称为 main 的 js。

  4. 点击相机按钮时,相机打开,但在附加捕获的图像时,不调用成功回调方法。

    function dump_pic(data) {
        alert(data);        
    }
    
    function fail(msg) {
        alert(msg);
    }
    
    function show_pic() {
        navigator.camera.getPicture(dump_pic, fail, { quality: 50 });
    }
    

在成功附加拍摄的照片时,它必须调用 dump_pic 并警告它的 base64 数据没有任何反应。

现在,如果我实现相同但略有不同 那就是我在资产文件夹下有一个 www 文件夹,在该文件夹下我有一个文件说 index.html 和上面相同的代码,这里唯一的区别是 super.loadUrl 方法更改为 super.loadUrl("file:///android_asset/www/index.html");正如 phonegap 示例那样,在这种情况下一切正常,它调用了成功回调方法,也调用了失败时的失败方法。

我实现的应用程序是一个网络应用程序,必须通过第一种方法工作。关于如何度过这个难关的任何想法。非常感谢任何帮助

【问题讨论】:

    标签: android cordova webview camera


    【解决方案1】:

    出于安全原因,这是 phonegap 应用程序的正确行为。

    如果您可以从 Webview 中加载的网页访问摄像头,这将带来很多可能的安全隐患。

    您必须从本地 index.html 文件加载相机。

    了解如何在手机上部署您的应用并使用市场进行更新。

    【讨论】:

    • 谢谢丹尼尔,但是似乎有人在 Flash 播放器上完成了它 (flashmobileblog.com/2010/03/12/…) 我正在我的 aspx 页面中寻找类似的东西
    • 根据 OP 的描述,PhoneGap is 已经在访问摄像头,至少足以启动它,尽管已从远程 URL 调用。
    猜你喜欢
    • 1970-01-01
    • 2019-08-21
    • 1970-01-01
    • 2014-09-10
    • 2019-12-04
    • 1970-01-01
    • 1970-01-01
    • 2020-03-01
    • 2012-07-12
    相关资源
    最近更新 更多