利用webview实现在andorid中嵌入swf

项目背景是这样的,一套系统有三个客户端分别是网页,flex和android,现在已经在flex上面做好了一个在线客户视频聊天系统,然后在这个基础上修改打包成了SWF,放在网页上面使用效果不错,但是利用这样的方式放在移动端就是会卡在连接服务器的地方(初步了解应该是服务器是基于RTMP的Red5服务器,android目前不支持RTMP协议),然后网上这方面的都是利用webview来嵌入SWF,所以思路错了,造成了走了不少弯路,记录下来从最初到最后实现的过程吧

这一片介绍直接在webview中嵌入swf,不经过任何处理(比较暴力的方式)


MainActivity :

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		loadFlash();
	}

	public void loadFlash() {
		WebView mWebFlash = (WebView) findViewById(R.id.web_flash);
		WebSettings settings = mWebFlash.getSettings();
		settings.setPluginsEnabled(true);
		settings.setJavaScriptEnabled(true);
		settings.setAllowFileAccess(true);
		settings.setDefaultTextEncodingName("GBK");
		mWebFlash.setBackgroundColor(0);
		
		mWebFlash.loadUrl("file:///android_asset/NewSampleClient.swf");
	}
	
	public String getSDPath(){ 
	       File sdDir = null; 
	       boolean sdCardExist = Environment.getExternalStorageState()   
	                           .equals(Environment.MEDIA_MOUNTED);   //判断sd卡是否存在 


	       if   (sdCardExist)      //如果SD卡存在,则获取跟目录
	       {                               
	         sdDir = Environment.getExternalStorageDirectory();//获取跟目录 
	      }   
	       return sdDir.toString(); 
	       
	}

}



activity_main.xml

<FrameLayout  xmlns:android="http://schemas.android.com/apk/res/android"
       android:layout_width="match_parent"  
       android:layout_height="match_parent">
  
   <FrameLayout  
       android:id="@+id/main_content"  
       android:layout_width="match_parent"  
       android:layout_height="match_parent">  
  
       <WebView  
           android:id="@+id/web_flash"  
           android:layout_width="match_parent"  
           android:layout_height="match_parent"  
           android:scrollbars="horizontal" />  
    </FrameLayout > 
</FrameLayout> 



最后别忘记追加网络权限

<uses-permission android:name="android.permission.INTERNET"/>  



下一篇介绍基于HTML模板的方式潜入SWF,这样我们就可以把android,JS,AS这三部分代码进行交互了

博客地址:http://qiaoyihang.iteye.com/

posted @ 2015-03-27 11:06  George_sz  Views(482)  Comments(0Edit  收藏  举报