ome*_*ga1 7 android facebook android-studio
我开始遇到一个 WebviewFragment 的问题,它在我的 Android 应用程序中打开,该应用程序旨在在 webview 中打开 Facebook 页面,直到最近(不能确切地说何时),这才起作用,但是现在当您单击打开 Web 视图的图标,它在 Web 视图中正确打开 Facebook 页面,但随后立即跳转到 Google 错误页面,其中显示"Webpage not available, the webpage at fb://page/xxxxxxxxx could not be loaded because: net:ERR_UNKNOWN_URL_SCHEME"
webviewFragmentAndroid 应用程序中的代码加载一个包含以下内容的URLmeta-equiv="refresh"到实际 Facebook 页面 URL 的代码。
我确信它webviewFragment工作正常,因为它正确加载其他页面(Twitter 页面)而不会出现此错误。
从fb://链接错误来看,它似乎正在加载 Facebook 页面 URL,然后尝试通过将其转换为内部 Facebook 链接 ( fb://) 来打开 Facebook 应用程序,以告诉它在 FB 应用程序中加载它?
我倾向于尝试解决此问题肯定是在链接中执行某些操作,而不是必须更新应用程序,但我不完全确定发生了什么变化以及发生了什么。
为了澄清这一点,Android 应用程序调用我们网站上的 URL (domain.com/facebok.html),并在该页面中对实际 Facebook 页面 URL 执行元等效刷新。
关于如何解决这个问题有什么想法吗?
更新 :
<uses-permission android:name="android.permission.INTERNET" />肯定在 AndroidManifest.xml 文件中。
Facebook 应用程序安装在设备上,但我们希望它在 WebView 中加载 Facebook 页面(作为网页),而不是打开 Facebook 应用程序。
应用程序代码根本没有改变,这似乎是由于操作系统更新而导致行为发生变化而导致的行为改变。
小智 1
我用过这个,它对我有用。
override fun shouldOverrideUrlLoading(
view: WebView?, request: WebResourceRequest?
): Boolean {
val url = request?.url.toString()
if (url.startsWith("fb://")) {
// Open Facebook app using intent
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
try {
startActivity(intent)
} catch (e: ActivityNotFoundException) {
// Facebook app is not installed, handle the error or fallback to a web-based solution
Toast.makeText(
context, "Facebook app not installed", Toast.LENGTH_SHORT
).show()
}
return true
}
return super.shouldOverrideUrlLoading(view, request)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1393 次 |
| 最近记录: |