0

Webview在这样的 Android 活动(比如Activity B)中使用

webview = new WebView(this);
webview.setWebViewClient(new WebViewClient());
setContentView(webview);
webview.loadUrl("http://mywebpage");

因此,webview 在 Activity 中打开了一个网页,预期的功能是用户可以按照 webview 中的链接浏览不同的网页。(该网站属于移动应用程序,或者换句话说,在我的控制之下)。

现在,在用户检查完网页后,我如何将用户带到另一个活动?(如果它有助于活动 -活动 A - 将与调用包含 webview 的活动 B 的位置相同)。

那么我可以从 webview 决定完成当前的活动(B),以便用户回到活动 A 吗?或者如果可能的话,根据网页上的某个事件直接启动另一个可能是活动 A 或其他活动 C 的活动?

或者我是否需要在 Activity B 的 Webview 之外提供一个按钮,我可以从中处理流程?

还是有更好的方法?

4

2 回答 2

1

我过去所做的是在 webview 活动中的 webview 下方提供一个关闭按钮(在你的情况下是 Activity B)。如果您使用 startActivityForResult 从 Activity A 调用 Activity B,则一旦 Activity B 关闭,控件将返回到 Activity A(更具体地说,一旦 Activity B 关闭,则在 Activity A 中调用 onActivityResult)。

结合上述内容,如果您有一个从页面 A 开始到页面 X 的已定义浏览过程,您可以尝试的另一件事是,您可以在到达页面 X 时自动关闭活动 B。Extend WebViewClient,监听onPageFinished事件以获取当前页面 URL,如果当前 URL 匹配终止 URL,则关闭活动。

于 2012-05-16T19:24:12.140 回答
1

有几种方法可以处理您所描述的内容。首先,如果用户点击他们的后退按钮,该活动应该可以正常完成并返回到活动 A,而无需调用完成。

现在,如果您正在创建/控制他们看到的网页,您可以创建意图过滤器以从 Web 视图启动另一个活动。例如:

<intent-filter>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data android:scheme="http" 
          android:host="www.yourwebsite.com" 
          android:path="your/path/here"/>
    <action android:name="android.intent.action.ACTION_VIEW"/>
</intent-filter>

如果您将该意图过滤器应用于清单中的活动,并在您的网站上放置一个指向 URL http://www.yourwebsite.com/your/path/here的链接,则应该启动支持该意图过滤器的活动。

于 2012-05-16T19:33:22.150 回答