Code Bye

Android4.4中Email打开网页URL问题-欢迎大家来讨论

Email中配置POP3账户,收到一封测试邮件。
包含如下内容
1)www.baidu.com
2)http://www.baidu.com
3)https://www.baidu.com
上面都是百度的主页地址,在邮件中点击2) 3)时可以调用浏览器打开,当然如果手机内存在多个浏览器时会弹出选择框供选择。
但是点击第一个时,直接在邮件正文中打开,显示错误: net:ERR_UNKNOWN_URI_SCHEME。
如此问题在Nexus5上实验,也是存在的。
猜测是android源生错误。
又去看了下Email源码,发现在此方法中mWebView.loadDataWithBaseURL(mBaseUri, convHtml, “text/html”, “utf-8”, null);
把收到的内容转成了类似于网页源码的文件。final String convHtml = renderMessageBodies(messageCursor, mEnableContentReadySignal); 调用系统内已经写好的一些template(模板,暂且这样翻译吧),其中有一些js方法,会给特定的内容加上超链接<a href=””></a>。到这个地方就看不懂了,js语言掌握的太少,不会继续往下分析了。
还有正文中处理用户单击事件,在源码中也没有找到处理的地方。
目前来说,4.4的Email更难阅读了。
呼唤大牛的出现,为我等解答一下Email
正在被和即将被Email煎熬的同学赶紧来,大家一起来讨论讨论。
快到碗里来!


3分
引用 楼主 u013034750 的回复:

Email中配置POP3账户,收到一封测试邮件。
包含如下内容
1)www.baidu.com
2)http://www.baidu.com
3)https://www.baidu.com
上面都是百度的主页地址,在邮件中点击2) 3)时可以调用浏览器打开,当然如果手机内存在多个浏览器时会弹出选择框供选择。
但是点击第一个时,直接在邮件正文中打开,显示错误: net:ERR_UNKNOWN_URI_SCHEME。
如此问题在Nexus5上实验,也是存在的。
猜测是android源生错误。
又去看了下Email源码,发现在此方法中mWebView.loadDataWithBaseURL(mBaseUri, convHtml, “text/html”, “utf-8”, null);
把收到的内容转成了类似于网页源码的文件。final String convHtml = renderMessageBodies(messageCursor, mEnableContentReadySignal); 调用系统内已经写好的一些template(模板,暂且这样翻译吧),其中有一些js方法,会给特定的内容加上超链接<a href=””></a>。到这个地方就看不懂了,js语言掌握的太少,不会继续往下分析了。
还有正文中处理用户单击事件,在源码中也没有找到处理的地方。
目前来说,4.4的Email更难阅读了。
呼唤大牛的出现,为我等解答一下Email。
正在被和即将被Email煎熬的同学赶紧来,大家一起来讨论讨论。
快到碗里来!

我也不会,帮你顶一下吧。。。


4分
你这个源码Email里面是怎么实现的调用浏览器的。能把相应的源码发给我吗? 高通的原生Email里面就没有实现这功能,坑啊。

3分
说错了 高通的Email里面直接是 www.baidu.com的时候是没有链接的。擦。人还在不在啊 ?一起商量帮个忙啊
引用 2 楼 cyt8666995 的回复:

你这个源码Email里面是怎么实现的调用浏览器的。能把相应的源码发给我吗? 高通的原生Email里面就没有实现这功能,坑啊。

点击链接发送一个action_view,具体的可以在frameworks 里的resolveInfo类里拦截看一下。

引用 3 楼 q8666995 的回复:

说错了 高通的Email里面直接是 www.baidu.com的时候是没有链接的。擦。人还在不在啊 ?一起商量帮个忙啊

我的理解是对于地址www.baidu.com没有声明使用何种协议,不能识别。对于http://或者https://是指定了协议的。


20分
引用 5 楼 u013034750 的回复:
Quote: 引用 3 楼 q8666995 的回复:

说错了 高通的Email里面直接是 www.baidu.com的时候是没有链接的。擦。人还在不在啊 ?一起商量帮个忙啊

我的理解是对于地址www.baidu.com没有声明使用何种协议,不能识别。对于http://或者https://是指定了协议的。

这个我已经解决了。现在4.4版本的,在Email中的message这个类,其中有个 linkly.addlink()方法中设置链接的参数Email-address改成all,变可以对不带http或者https的网址就行识别链接。

不过还是感谢你。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Android4.4中Email打开网页URL问题-欢迎大家来讨论