Android 相当于 iOS' SFSafariViewController
Android equivalent of iOS' SFSafariViewController
在 iOS 上,有 3 种显示 Web 内容的方法(正如 iOS 开发人员告诉我的):
- 一个
UIWebView
显示在一个 UIControllerView
里面 如果我是正确的
- 一个
SFSafariViewController
作为一个UIControllerView
Safari
,应用本身
关于Android,就我而言,只有两种方法:
- a
WebView
(在 Fragment
或 Activity
布局内)
- 用户默认的浏览器应用程序(如果有)(通常 Chrome,但您知道任何可以处理
Action.View
Intent
的应用程序)。
无论如何,SFSafariViewController
的优点是您的应用程序中有一个成熟的 Web 浏览器,而不会让您的应用程序在整个 OS.[=28= 中保持不变的用户体验]
最近,我遇到了 Reddit 或法国铁路应用程序 (OuiSNCF) 等应用程序,其中网页内容的显示方式与 iOS 上的 SFSafariViewController
非常相似:
- 它单独显示在您当前
Activity
的顶部
- 它显示 URL 并且如果它是安全的
- 触摸对话框底部的三点菜单图标显示“由 Chrome 提供”(如果我是正确的,因为我的 phone 是法语)。
但是在 Internet 和此处查看 SO,我只能找到通过 Intents 启动 Chrome 本身的方法。
寻找 ChromeView
我偶然发现了一些项目,没有官方的。
所以我在这里问这个问题:这是官方的吗?真的有一种 ChromeWebView
类似于 iOS 上的 SFSafariViewController
吗?如果是,如何实施?
感谢您的回答!
似乎确实有一个官方方法:Chrome Custom Tabs
详情如下:https://developer.chrome.com/multidevice/android/customtabs.
是 您可以使用 CustomTabs
来实现
将此添加到您的 app/build.gradle
文件
dependencies {
implementation "androidx.browser:browser:1.3.0"
}
For Java
String url = "https://paypeg.me/";
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
CustomTabsIntent customTabsIntent = builder.build();
customTabsIntent.launchUrl(this, Uri.parse(url));
For Kotlin
val url = "https://paypeg.me/"
CustomTabsIntent.Builder()
.build()
.launchUrl(context, Uri.parse(url))
更多定制here
在 iOS 上,有 3 种显示 Web 内容的方法(正如 iOS 开发人员告诉我的):
- 一个
UIWebView
显示在一个UIControllerView
里面 如果我是正确的 - 一个
SFSafariViewController
作为一个UIControllerView
Safari
,应用本身
关于Android,就我而言,只有两种方法:
- a
WebView
(在Fragment
或Activity
布局内) - 用户默认的浏览器应用程序(如果有)(通常 Chrome,但您知道任何可以处理
Action.View
Intent
的应用程序)。
无论如何,SFSafariViewController
的优点是您的应用程序中有一个成熟的 Web 浏览器,而不会让您的应用程序在整个 OS.[=28= 中保持不变的用户体验]
最近,我遇到了 Reddit 或法国铁路应用程序 (OuiSNCF) 等应用程序,其中网页内容的显示方式与 iOS 上的 SFSafariViewController
非常相似:
- 它单独显示在您当前
Activity
的顶部
- 它显示 URL 并且如果它是安全的
- 触摸对话框底部的三点菜单图标显示“由 Chrome 提供”(如果我是正确的,因为我的 phone 是法语)。
但是在 Internet 和此处查看 SO,我只能找到通过 Intents 启动 Chrome 本身的方法。
寻找 ChromeView
我偶然发现了一些项目,没有官方的。
所以我在这里问这个问题:这是官方的吗?真的有一种 ChromeWebView
类似于 iOS 上的 SFSafariViewController
吗?如果是,如何实施?
感谢您的回答!
似乎确实有一个官方方法:Chrome Custom Tabs
详情如下:https://developer.chrome.com/multidevice/android/customtabs.
是 您可以使用 CustomTabs
将此添加到您的 app/build.gradle
文件
dependencies {
implementation "androidx.browser:browser:1.3.0"
}
For Java
String url = "https://paypeg.me/";
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
CustomTabsIntent customTabsIntent = builder.build();
customTabsIntent.launchUrl(this, Uri.parse(url));
For Kotlin
val url = "https://paypeg.me/"
CustomTabsIntent.Builder()
.build()
.launchUrl(context, Uri.parse(url))
更多定制here