AI开发实战8-Web浏览框(WebView)的定制1

Posted xjbclz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AI开发实战8-Web浏览框(WebView)的定制1相关的知识,希望对你有一定的参考价值。

7 Web浏览框(WebView)的定制

7.1 增加拨号功能

目前许多网页上都显示有电话号码,供用户在浏览网页的时候,可以直接拨打电话,但App Inventor2提供的Web浏览框不支持此功能,使用不方便,现修改源码使其支持此功能。

Web浏览框额源码文件是WebViewer.java,首先需要在此文件中添加申请拨打电话权限的代码:

@UsesPermissions(permissionNames ="android.permission.INTERNET, android.permission.CALL_PHONE")

 

创建浏览框时,会执行如下代码如下:

private void resetWebViewClient()

   if (SdkLevel.getLevel() >= SdkLevel.LEVEL_FROYO)

     webview.setWebViewClient(FroyoUtil.getWebViewClient(ignoreSslErrors,followLinks, container.$form(), webview.getContext(), this));

    else

     webview.setWebViewClient(new WebViewerClient());

   

 

 

目前用户使用的Android设备的系统版本都大于SdkLevel.LEVEL_FROYO,所以在创建Web浏览框时,还会调用FroyoUtil.java里的getWebViewClient函数:

public static WebViewClientgetWebViewClient(final boolean ignoreErrors,

   final boolean followLinks, final Form form, final Context context, finalComponent component)

   return new WebViewClient()

     @Override

     public boolean shouldOverrideUrlLoading(WebView view, String url)

      //判断url如果以tel:开始,则意味此url中包含了电话号码,点击此url,调用系统拨号功能

          if (url.startsWith("tel:"))

           Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));

           context.startActivity(intent);

 

            return true;

       

       return !followLinks;

     

 

     @Override

     public void onReceivedSslError(WebView view, SslErrorHandler handler,SslError error)

       if (ignoreErrors)

         handler.proceed();

        else

         handler.cancel();

         form.dispatchErrorOccurredEvent(component, "WebView",

           ErrorMessages.ERROR_WEBVIEW_SSL_ERROR);

       

     

   ;

 

如下图所示:

网页上有技术支持热线这个电话号码,右边有个拨号图标,点击此图标,就显示如下拨号界面(我用的Android6.0系统的模拟器,不同模拟器或设备界面可能不同):

除了增加拨号功能外,也可以通过判断url是否以sms:开头,增加发送短信的功能。

以上是关于AI开发实战8-Web浏览框(WebView)的定制1的主要内容,如果未能解决你的问题,请参考以下文章

AI开发实战7-列表显示框(Listview)的定制

AI开发实战5-文本输入框(TextBox)的定制2

AI开发实战4-文本输入框(TextBox)的定制1

用hbuilder开发app怎么从webview中跳出新页面

移动端实战总结

iOS webview html5 移动端 软键盘弹起遮挡输入框