Android WebView setWebViewClient()和Facebook Live Stream=ActivityNotFoundException
我有一个简单的Facebook Live Stream HTML网页视图:Android WebView setWebViewClient()和Facebook Live Stream=ActivityNotFoundException,android,facebook,android-intent,webview,Android,Facebook,Android Intent,Webview,我有一个简单的Facebook Live Stream HTML网页视图: <html> <head></head> <body> <iframe allowfullscreen="true" allowtransparency="true" frameborder="0" height="315" scrolling="no" src="https://www.facebook.com/plugins/vid
<html>
<head></head>
<body>
<iframe allowfullscreen="true" allowtransparency="true" frameborder="0" height="315" scrolling="no" src="https://www.facebook.com/plugins/video.php?href=https%3A%2F%2Fwww.facebook.com%2Fnico.up.9%2Fvideos%2F1895877650644648%2F&show_text=0&width=560" style="border:none;overflow:hidden" width="560"></iframe>
</body>
</html>
问题是如果我有一个Facebook实时流,我会崩溃
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=intent://video/?id={10155200044259063}&ref=m_embedded_video/ }
实际上,Facebook的iframe希望使用自定义uri打开Facebook本机应用程序中的live://
我如何正确处理此uri强>
在我的测试中:
- 如果我不添加我的自定义WebViewClient(永远不要调用setWebViewClient()),它就可以完美地工作李>
- 如果我没有启动新的活动并返回false,我就不会崩溃,但我可以在iframe中查看Chrome错误加载:ERR\u UNKNOWN\u URL\u SCHEME李>
最有趣的是:
- 为什么我只添加这一行:
webview.setWebViewClient(newwebviewclient())代码>我有一个错误未知的URL方案,如果我删除它,那就是工作李>
感谢您的帮助。回答您的一个问题 为什么我只添加这么简单的一行:
webview.setWebViewClient(新)
WebViewClient())代码>我有ERR\u UNKNOWN\u URL\u方案,如果我删除它
工作
请注意,如果不调用setWebViewClient(new WebViewClient())
,WebView的默认行为是启动一个处理URL的应用程序。否则,使用WebViewClient
类的实例设置客户端将在WebView
对象中加载URL
因此,如果调用setWebViewClient(new WebViewClient())
,则实际上执行的代码类似于在shouldOverrideUrlLoading()
中返回false
。因此,给您相同的ERR\u UNKNOWN\u URL\u方案
error.来回答您的一个问题
为什么我只添加这么简单的一行:webview.setWebViewClient(新)
WebViewClient())代码>我有ERR\u UNKNOWN\u URL\u方案,如果我删除它
工作
请注意,如果不调用setWebViewClient(new WebViewClient())
,WebView的默认行为是启动一个处理URL的应用程序。否则,使用WebViewClient
类的实例设置客户端将在WebView
对象中加载URL
因此,如果调用setWebViewClient(new WebViewClient())
,则实际上执行的代码类似于在shouldOverrideUrlLoading()
中返回false
。因此,给你相同的ERR\u UNKNOWN\u URL\u方案
error.如果你不调用setWebViewClient,它会加载到你手机的默认浏览器上吗?如果我不调用setWebViewClient,一切正常:在我手机的默认浏览器上加载新的URL(http://)和Fb Live Stream的URL(意图://)在fb应用程序中打开。这就是你想要的行为?(如果url是您自己的域,还需要做些什么?)是的,我想打开webview之外的所有url,我必须为单击的特定域执行特定操作。如果您不调用setWebViewClient,它是否加载到您手机的默认浏览器上?如果我不调用setWebViewClient,所有操作都正常:在我手机的默认浏览器上加载新url(http://),和在Fb应用程序中打开的Fb Live Stream的url(intent://)。这是您想要的行为吗?(如果url是您自己的域,还要做些什么?)是的,我想打开我的webview之外的所有url,并且我必须为单击的特定域做特定的事情。
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=intent://video/?id={10155200044259063}&ref=m_embedded_video/ }