[原]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();
            }
          }

}

时间: 2024-11-03 21:30:11

[原]unity3d调用android webView的相关文章

Unity3D调用android方法(非插件方式)

关于Unity3Dproject与androidproject的转换与合并,请參考我的另外一篇博客.假设你对Unity3Dproject增加到androidproject的过程不熟悉.也请先看完以下这篇博客: android与Unity3D交互,fragment显示unity3d视图. 以下,我们来说说本博客的终端,Unity3D调用android的方法: 1.首先,在网络上大家能够看到非常多把android project打包,然后以插件的方式,放入Unity3D工程中来调用的方式,这样的方式

【Js】调用Android WebView定义的方法总结

先贴代码: package com.example.demowebview; import Android.os.Bundle;import android.os.Handler;import android.app.Activity;import android.webkit.JAVAscriptInterface;import android.webkit.JsResult;import android.webkit.WebChromeClient;import android.webkit

在webView 中使用JS 调用 Android / IOS的函数 Function

最近做一个项目,混合了NativeCode 和 HTML,为了便于JS 调用App的一些方法,统一封装一个Js方法,记录如下 Android 端首先要再WebView中允许JS的调用 WebView myWebView = (WebView) findViewById(R.id.webview); WebSettings webSettings = myWebView.getSettings(); webSettings.setJavaScriptEnabled(true); myWebView

Android Webview 和Javascript交互,实现Android和JavaScript相互调用

在Android的开发过程中.遇到一个新需求.那就是让Java代码和Javascript代码进行交互.在IOS中实现起来很麻烦.而在Android中相对来说容易多了.Android对这种交互进行了很好的封装.我们可以很简单的用Java代码调用WebView中的js函数.也可以用WebView中的js来调用Android应用中的Java代码. 案例主要包含了: Html中调用Android方法 Android调用JS方法无参数 Android调用JS方法有参数 Android调用JS方法有参数且有

android WebView java与js相互调用

android webView js 使用1.js调用java    1.1 js代码    <script type="text/javascript">        function call(){            window.androidInterface.call('02585818031');        }    </script> 1.2.java代码    package com.example.webview;    import

WebView中JS调用Android Method 遇到的坑整理

WebView是android中常用的一个组件,其作用是展示网页,并让网页和android app进行一些业务逻辑上的交互. 其坑无数,相信用过的都知道,一个一个来解决吧. 1.怎么互调: <!DOCTYPE> <html> <head> <meta charset="UTF-8"> <script type="text/javascript"> function android(bl){ if(bl){

android 的webview调用php服务器js , js 调用Android的webview

最近项目的需求: Android通过webView调用php的数据 , 这时候是需要整理webview和JavaScript之间相互调用的时候了 一. 理清思路: (1) . 双方都是客户端 , 一个是Android , 一个是js( js当然是客户端 , 后面说明) (2) . Android的webview需要支持JavaScript , 即 WebSettings settings = myWebView.getSettings(); settings.setJavaScriptEnabl

[Android]Webview中JS接口调用Java-版本问题

问题: The javascript to java bridge on 2.3 Gingerbread is causing crashes. This is 100% reproducible using the WebViewDemo application from here: http://code.google.com/p/apps-for-android/source/browse/#svn/trunk/Samples/WebViewDemo. Note: The project

WebView之js调用Android类的方法传递数据

1,具体的思路如下: 在android中写一个Activity,里面写一个webview,这个webview加载本地的一个html文件,显示这个网页,这个网页包括一个用户名和密码的输入框和两个按钮(只有登陆按钮有用),输入用户名密码之后调用android中的类,并把输入的数据传过去,再在android中输出出来(具体你那数据做什么操作就看你的需求了),这样就做大额js与android数据交互的效果了: 在android端,一些webviwe的设置和自定义类的写法如下源码: package com