我们可以简单地将Intent
个对象转换为Uri
个对象:
Intent intent = ...;
Uri uri = intent.toUri(Intent.URI_INTENT_SCHEME); // The value of flag is not important for me.
怎么能以相反的顺序呢?
我的知识:
有一个静态方法获取String
作为参数。 (当然,它已被弃用。)
Intent.getIntent(String uri);
还有两个接受Uri
的构造函数,但是那些也接受了我不知道它们的值的其他参数:
1) Intent(String action, Uri uri);
2) Intent(String action, Uri uri, Context packageContext, Class<?> cls)
我只有一个uri
和flags
参数的值传递给toUri(int flags)
。
其他信息:
实际上,我有一个WebResourceRequest
对象来自shouldOverrideUrlLoading(WebView view, WebResourceRequest request)
(WebViewClient
类)。
如果不注意弃用,我不会有任何问题。因为以下方式实际上很好用:
@SuppressWarnings("deprecation")
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Intent intent = Intent.getIntent(url);
...
}
但已弃用shouldOverrideUrlLoading(WebView, String)
和Intent.getIntent(String)
。
答案 0 :(得分:1)
Use parseUri()
。引用文档:
从URI创建意图。如果由toUri(int)返回,则此URI可以对操作,类别和其他意图字段进行编码。如果toUri()没有生成Intent,则其数据将是整个URI,其操作将是ACTION_VIEW。