1

我用 PhoneGap 创建了一个 Android 应用程序。MainActivity 看起来像这样:

MainActivity.java

import org.apache.cordova.*;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends DroidGap {
      @Override
      public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        super.loadUrl("file:///android_asset/www/index.html");
      }
}

另外,当我的 index.html 中的某个 JavaScript 事件发生时,我还有另一个活动被调用。在这种情况下,onCreate(Bundle b)被调用:

MyUriActivity.java

import android.app.Activity;
import android.os.Bundle;

public class MyUriActivity extends Activity {
    @Override
    public void onCreate(Bundle b){
        super.onCreate(b);

        // I want to access appView here, so I can call
        // appView.loadUrl("file:///android_asset/www/index.html");
    }
}

如上面的评论所示,我想在这个事件发生时重新打开 index.html 但我不知道如何访问 webview 实例。

我该怎么做呢?

4

2 回答 2

2

要在您的两个操作之间进行通信,您应该使用Intents

它们允许您将自定义数据放入消息中并将其发送到另一个 Action,如下所示:

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(android.content.Intent.EXTRA_TEXT, "News for you!");
startActivity(intent);

M. Lars Vogel 在这方面有很多很好的例子(上面的例子来自他的博客

http://www.vogella.com/articles/AndroidIntent/article.html

如果我正确理解您的问题,您希望在 MyUriActivity 中发生某些事情时让 MainActivity 显示某些内容(已加载的 WebView)。您应该在 MyUriActivity 中创建一个意图,然后将其发送到 MainActivity。

于 2013-03-18T11:33:13.573 回答
-1

这可能不是最优雅的解决方案,但您应该尝试一下。

由于两者都是您的应用程序,因此在 MainActivity 中创建一个 getFile() 方法并返回所需的文件(不仅仅是 URL,您需要返回文件)。然后使用MyUriActivity的反射来访问这个getFile()方法,应该可以得到需要的文件

于 2013-03-18T11:25:42.067 回答