欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

利用webview实现在andorid中嵌入swf

程序员文章站 2022-05-11 16:30:23
...
项目背景是这样的,一套系统有三个客户端分别是网页,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/