找到Phonegap使用的WebView?

时间:2011-11-20 23:02:44

标签: javascript android html cordova

我还没有找到答案,这似乎是一项简单的任务。

我需要能够找到Phonegap在调用时使用的WebView:

    super.loadUrl("file:///android_asset/www/index.html");

我尝试在main.xml文件中创建一个新的WebView并将index.html页面加载到它中,这只会导致空指针异常。

任何帮助都会很棒。

///

编辑:

下面的代码现在看起来实际上是截取视图的截图,因为文件的大小为823bytes。但是,它显示的只是一个黑色图像,没有显示任何内容..

在加载视图之前,是否可以快速截取屏幕截图?或者我做错了什么?

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    super.loadUrl("file:///android_asset/www/index.html");


    View html = (View)super.appView.getParent(); 
    Bitmap bm2 = Bitmap.createBitmap(200, 300, Bitmap.Config.ARGB_8888);
    Canvas c2 = new Canvas(bm2);
    html.draw(c2);

    OutputStream stream = null;
    try {
      stream = new FileOutputStream(Environment.getExternalStorageDirectory() +"/bm2.png");
      bm2.compress(CompressFormat.PNG, 80, stream);
      if (stream != null) stream.close();
    } catch (IOException e) {
    } finally {
      bm2.recycle();
    }

}//end

2 个答案:

答案 0 :(得分:3)

我有同样的问题 - 如何获得对WebView的引用 - 所以我将为后代发布我的解决方案(所以我将来可以再次找到它)。

查看https://github.com/apache/cordova-android/blob/master/framework/src/org/apache/cordova/CordovaActivity.java,使用的WebView似乎是受保护的变量appView,可以从主Android类访问。所以只需使用appView变量。

答案 1 :(得分:1)

如果我不得不猜测,WebView不尊重绘图缓存。

尝试使用capturePicture(),然后将Picture呈现给Bitmap支持的Canvas,并保存生成的位图。参见: