• [原]unity3d调用android webView


    1、配置dialog xml文件:

    <resources>
        <style name="dialogStyleWindow" parent="@android:style/Theme.Dialog">
             <item name="android:windowNoTitle">true</item>  
            <item name="android:windowFrame">@null</item>
            <item name="android:windowIsFloating">true</item>
            <item name="android:windowIsTranslucent">true</item>
            <item name="android:background">@android:color/transparent</item>
            <item name="android:windowBackground">@android:color/transparent</item>  
        </style>
    </resources>

    2、创建布局xml notice.xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <WebView
            android:id="@+id/webView1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />

        <ImageView
            android:id="@+id/close"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:src="@drawable/btn_close" />
    </RelativeLayout>

    3、代码实现:

    import android.app.Activity;
    import android.app.Dialog;
    import android.app.ProgressDialog;
    import android.view.Display;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.WindowManager;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;
    import android.widget.ImageView;

    public class Notice {

        Activity mActivity;
        Dialog noticeDialog = null;
        WebView webView;
        ProgressDialog dialog;
        

    //在主activity中调用 传this进来
        public  Notice(Activity activity) {
            mActivity = activity;
        }
        

    //u3d 调用这个函数显示webview  线程问题 建议通过handler方式调用
        public  void show() {
            if(noticeDialog == null){
                noticeDialog = new Dialog(mActivity,R.style.dialogStyleWindow);
            }
            View contentView = mActivity.getLayoutInflater().inflate(R.layout.notice,null);

             ImageView closeBtn = (ImageView) contentView
                     .findViewById(R.id.close); //关闭当前webview
             closeBtn.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    
                    noticeDialog.dismiss();
                    webView = null;
                    noticeDialog = null;
                }
            });
             
             dialog = ProgressDialog.show(mActivity,null,"正在进入网页,请稍后…");  
             webView =(WebView)contentView.findViewById(R.id.webView1);
            webView.loadUrl("http://www.baidu.com");  
            webView.getSettings().setJavaScriptEnabled(true);  
            webView.setWebViewClient(new WebViewClient());
            
            noticeDialog.setContentView(contentView);
            noticeDialog.setCanceledOnTouchOutside(false);
            noticeDialog.show();
            

     //设置webview全屏
            WindowManager windowManager = mActivity.getWindowManager();
            Display display = windowManager.getDefaultDisplay();
            WindowManager.LayoutParams lp = noticeDialog.getWindow().getAttributes();
            lp.width = (int)(display.getWidth()); //设置宽度
            lp.height = (int)(display.getHeight());
            noticeDialog.getWindow().setAttributes(lp);
        }
         private class WebViewClient extends android.webkit.WebViewClient {  
                @Override  
                public boolean shouldOverrideUrlLoading(WebView view, String url) {  
                  view.loadUrl(url);  
                  return true;  
                }  
                
                @Override
                public void onPageFinished(WebView view, String url) {
                // TODO Auto-generated method stub
                   
                        dialog.dismiss();
                }
              }  

    }

  • 相关阅读:
    《Linux内核设计与实现》读书笔记(4) 中断和中断处理程序
    《Linux内核设计与实现》读书笔记(11) 内存管理(1)
    《Linux内核设计与实现》读书笔记(10) 定时器和时间管理(2)
    《Linux内核设计与实现》读书笔记(7) 内核同步方法(1)
    《Linux内核设计与实现》读书笔记(9) 定时器和时间管理(1)
    Mac os 10.7.1(Lion) 下vmware fusion里的windows有时无法工作在NAT模式下的问题
    偶然发现7年前受到的offer。7年,一晃而过
    IE下对文件(图片)进行base64转换
    IE这个bug真是弱爆了
    腾讯举办创意马拉松活动庆祝成立14周年
  • 原文地址:https://www.cnblogs.com/U-tansuo/p/unity3d_webView.html
Copyright © 2020-2023  润新知