这样要改内核代码了吧 
一般来说你说的那两种TAG都是以这种形式表现的 如<a href="tel:tel:1234567"></a> 
<a href="sms:1234567/感谢分享"></a>
当解析到a元素时判断href的值是tel:形式还是sms:形式,然后给他们加个button

解决方案 »

  1.   

    一般来说你说的那两种TAG一般以<a href="tel:1234567"></a> 
    <a href="sms:1234567/感谢分享"></a>这种形式存在的,
    当解析到a元素时增加判断,如果href是tel或者sms形式给它加个按钮图片
      

  2.   

    感谢AspireHouse的回复!这是一个新思路,:)
    仍请指教,改内核,是指改webkit的内核吗?具体在android上如何实现?应该是个大话题,有没有攻略地址,或者合适的搜索关键词,我去搜搜学习下。多谢了。
    之前有一些想法,但是还是有些差距,请大家给点意见:
    1、重载WebViewClient的shouldOverrideUrlLoading方法,在其中遇到url="tel:1234567"和url="sms:1234567/感谢分享"这样的特定地址时就做特别的操作,这样使用<a href...>的形式就可以满足一定的需要。但缺点是必须当超链接被点击时才能触发行为动作,无法提前构建相应GUI;2、使用addJavascriptInterface方法。在页面中按照规则编写js代码,js代码调用触发android特定动作。但缺点同上,无法提前构建GUI;3、访问页面时同时访问某一个指定的xml文件地址,xml中以便签自定义所需界面及操作数据。手机端访问页面时同步根据xml构建GUI。这个方案可以实现提前(近似于)构建GUI。但也有缺点,是需要额外发起一次xml的访问,这个在定制化的页面增多后,同时提升了web端和client-side端的开发及维护成本;4、还有个模糊的思路,但缺乏基础知识,没想清楚。就是有没有办法在html嵌入一段特殊的代码,其中携带必要信息(比如meta之类的),通过webview可以读取解析,完成功能。同时又不影响web的兼容性,保证页面在其他浏览器,其他平台上也能正常显示,只是无法对嵌入代码解析而已?谢谢大家了
      

  3.   

    感谢AspireHouse的回复!这是一个新思路,:)
    仍请指教,改内核,是指改webkit的内核吗?具体在android上如何实现?应该是个大话题,有没有攻略地址,或者合适的搜索关键词,我去搜搜学习下。多谢了。
    之前有一些想法,但是还是有些差距,请大家给点意见:
    1、重载WebViewClient的shouldOverrideUrlLoading方法,在其中遇到url="tel:1234567"和url="sms:1234567/感谢分享"这样的特定地址时就做特别的操作,这样使用<a href...>的形式就可以满足一定的需要。但缺点是必须当超链接被点击时才能触发行为动作,无法提前构建相应GUI;2、使用addJavascriptInterface方法。在页面中按照规则编写js代码,js代码调用触发android特定动作。但缺点同上,无法提前构建GUI;3、访问页面时同时访问某一个指定的xml文件地址,xml中以便签自定义所需界面及操作数据。手机端访问页面时同步根据xml构建GUI。这个方案可以实现提前(近似于)构建GUI。但也有缺点,是需要额外发起一次xml的访问,这个在定制化的页面增多后,同时提升了web端和client-side端的开发及维护成本;4、还有个模糊的思路,但缺乏基础知识,没想清楚。就是有没有办法在html嵌入一段特殊的代码,其中携带必要信息(比如meta之类的),通过webview可以读取解析,完成功能。同时又不影响web的兼容性,保证页面在其他浏览器,其他平台上也能正常显示,只是无法对嵌入代码解析而已?谢谢大家了
      

  4.   

    修改内核就是修改webview的源码 然后建立一个so包用自己的webview去loadurl,不过就为了修改这么点太不值得了 一下会使应用的大小增加许多
      

  5.   

    我有个思路,不知可行
    第一步:自己写网络模块从服务器取得页面的html代码
    第二步:解析这段源码,通过正则匹配或者字符串判断,但凡遇到<a href="tel:1111">call</a>把这段字符串转化为<button onclick="window.object.tel()">call</button> //window.object是扩展对象
    第三部:把转化后的字符串str用webview.loadview.loadDataWithBaseURL(url, str, mimeType, encoding, null);
      

  6.   

    <button onclick="window.object.tel(1111)">call</button>
      

  7.   

    主要是想把页面和客户端揉合起来,兼顾灵活和整体感。
    其实需求大概是这样的,某种类型的页面,需要在客户端底部用工具条的方式显示拨号、手机等等按钮;其他类型的页面,又可能根据业务放上其他不同的按钮;
    这样操作起来就不像是完全在进行网页操作。呵呵,总结得不好,就是在程序中完成了applicaton与web的交互,不止有操作交互,还有界面的交互。
      

  8.   

    既然不要网页操作 就不要用html了 完全可以自己来自定义控件
      

  9.   


    感觉一、二步有戏 :D。只是目的还不是在页面上直接显示按钮,而是在activity底部工具条动态生成按钮。
      

  10.   


    之前有个版本是这么做的,后来发现业务需求比较灵活,扩展的地方太多,还是嵌入web方式开发及使用效率高些。才形成了现在的这么个交互需要。
      

  11.   


    那就解析到<a href="tel:1111">call</a>对页面代码不要做任何操作,只是记录下这个标识 同时通知底部工具条去生成按钮