如何让用户轻松地从Android应用程序中的WebKit会话返回?

如何让用户轻松地从Android应用程序中的WebKit会话返回?,android,session,webkit,back,intentfilter,Android,Session,Webkit,Back,Intentfilter,我的Android应用程序需要在客户端代码和WebKit会话之间来回切换。在某些操作期间,我将用户重定向到通过WebKit加载的不同网站。我想为用户提供一种简单的方法,让他们离开WebKit会话,跳回我的应用程序执行另一个操作或修改上一个会话。我不想依赖浏览器后退按钮,因为如果用户在网站上进行了任何重要的页面导航,并且不得不退出会话返回到我的应用程序,这可能会给用户带来负担 我想在某个地方设置一个按钮或链接,用户可以在任何时候返回我的应用程序时单击。注意,我不是问我是否可以将元素注入WebKit

我的Android应用程序需要在客户端代码和WebKit会话之间来回切换。在某些操作期间,我将用户重定向到通过WebKit加载的不同网站。我想为用户提供一种简单的方法,让他们离开WebKit会话,跳回我的应用程序执行另一个操作或修改上一个会话。我不想依赖浏览器后退按钮,因为如果用户在网站上进行了任何重要的页面导航,并且不得不退出会话返回到我的应用程序,这可能会给用户带来负担

我想在某个地方设置一个按钮或链接,用户可以在任何时候返回我的应用程序时单击。注意,我不是问我是否可以将元素注入WebKit会话,因为我非常确定WebKit不会允许这样做

有什么想法吗?此外,欢迎提供有关在WebKit发布之间维护状态信息的任何提示。我知道Activity constructor Bundle参数,但如果有任何细微差别需要注意,请告诉我

--roschler

(当你说“WebKit”时,我假设你指的是默认的系统浏览器,而不是嵌入式WebView类。)

它可以通过自定义URL方案完成。自定义URl方案示例如下:

myapp://somedata:someotherdata

您可以注册要为此方案调用的应用程序:

<activity ....>
    <intent-filter>
        <data android:scheme="myapp"/>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE"/>
    </intent-filter>
</activity>

然后在您的浏览器中只需引用
myapp://
,就像您使用任何其他
http://
url一样(通过按钮、链接、javascript..)。您还可以在方案后添加一些数据,例如
myapp://some:data
an您可以通过
getIntent().getData()
在应用程序中检索它

注意:自定义方案是全局的-请确保您不会与其他应用程序冲突。最好使用完整的包名
com.mypackage.myapp://