Android - 应用程序中断时保存在应用程序浏览器状态(页面+页面中的位置)
Android - Save in app browser state (page + place in page) when app is interrupted
我的应用程序的一部分是在应用程序中打开浏览器并将用户发送到专用网页(我们称之为 "FirstPage")。用户可以在那里导航抛出网页。
这很好用,但是当用户在网页中并且应用程序被中断(通过来电或按下保持按钮)时,浏览器状态不会保存,当用户返回应用程序时,浏览器会自动打开 "FirstPage" 而不是上次查看的页面。
如何保存浏览器状态,以便上次查看的页面在中断后出现?
非常感谢!
如果 URL 正在 Android 本机浏览器中加载,那么我认为不可能收集它的最后 URL 和滚动位置。无论如何,这可能会侵犯用户的隐私,因为用户可以浏览网络,例如访问色情网站,然后您会在他们下次加载时存储 URL。
但是,如果您使用的是 WebView
(docs),则可以,因为它封装在您的应用程序中。 computeVerticalScrollOffset()
和 getURL()
等函数会收集该信息。
您可以将数据存储在 Android Shared Preferences 中。
如果您需要存储此信息并随时准备好让应用程序结束,您可以尝试将其存储在 Activity.onDestroy()
、Activity.onPause()
和 Activity.onStop()
上。我不确定在应用 closure/pause/stop 期间您需要多少控制来存储首选项,但如果您不能,我建议您在检测到滚动位置变化或 URL 时存储它。
查看 this answer 以获取有关如何监听 WebView 更改的提示。
最后,一旦你存储了数据,你只需要在 WebView 重新初始化时使用存储的首选项。
我的应用程序的一部分是在应用程序中打开浏览器并将用户发送到专用网页(我们称之为 "FirstPage")。用户可以在那里导航抛出网页。 这很好用,但是当用户在网页中并且应用程序被中断(通过来电或按下保持按钮)时,浏览器状态不会保存,当用户返回应用程序时,浏览器会自动打开 "FirstPage" 而不是上次查看的页面。
如何保存浏览器状态,以便上次查看的页面在中断后出现?
非常感谢!
如果 URL 正在 Android 本机浏览器中加载,那么我认为不可能收集它的最后 URL 和滚动位置。无论如何,这可能会侵犯用户的隐私,因为用户可以浏览网络,例如访问色情网站,然后您会在他们下次加载时存储 URL。
但是,如果您使用的是 WebView
(docs),则可以,因为它封装在您的应用程序中。 computeVerticalScrollOffset()
和 getURL()
等函数会收集该信息。
您可以将数据存储在 Android Shared Preferences 中。
如果您需要存储此信息并随时准备好让应用程序结束,您可以尝试将其存储在 Activity.onDestroy()
、Activity.onPause()
和 Activity.onStop()
上。我不确定在应用 closure/pause/stop 期间您需要多少控制来存储首选项,但如果您不能,我建议您在检测到滚动位置变化或 URL 时存储它。
查看 this answer 以获取有关如何监听 WebView 更改的提示。
最后,一旦你存储了数据,你只需要在 WebView 重新初始化时使用存储的首选项。