unity调android ios 浏览器 uniwebview2.1使用

uniwebview2.1使用


插件下载地址:

http://download.csdn.net/detail/onafioo/9576200


示例

public class BrowserMgr {

	private static UniWebView _webView;

	static GameObject BrowserGo;

	public static void Open(string url){
		if(!CheckURL(url)){
			Debug.Log("[N]---browser url error!! url:"+url);
			return;
		}

		if(null == BrowserGo)BrowserGo = new GameObject("browser");
		_webView = BrowserGo.GetComponent<UniWebView>();
		if (_webView == null) {
			_webView = BrowserGo.AddComponent<UniWebView>();
			_webView.OnReceivedMessage += OnReceivedMessage;
			_webView.OnLoadComplete += OnLoadComplete;
			_webView.OnWebViewShouldClose += OnWebViewShouldClose;
			//_webView.OnEvalJavaScriptFinished += OnEvalJavaScriptFinished;
			_webView.InsetsForScreenOreitation += InsetsForScreenOreitation;
		}
		
		int bottomInset = (int)(UniWebViewHelper.screenHeight);
		_webView.insets = new UniWebViewEdgeInsets(0,0,0,0);
		_webView.url = url;

		//_webView.url = "http://uniwebview.onevcat.com/demo/index1-1.html";
		//_webView.url = "http://192.168.12.110:8401/t.html";
		//_webView.url = "http://www.sina.com.cn/";
		_webView.SetSpinnerLabelText("载入中...");
		_webView.SetShowSpinnerWhenLoading(true);
		Debug.Log("URL:"+_webView.url);
		ShowViewEventArgs e = new ShowViewEventArgs(ViewNames.HomeView.ToString(), true, true, true);
		App.Instance.EventManager.SendEvent(e);
		_webView.Load();
	}

	/// <summary>
	/// 浏览器载入成功回调
	/// </summary>
	/// <param name="webView">Web view.</param>
	/// <param name="success">If set to <c>true</c> success.</param>
	/// <param name="errorMessage">Error message.</param>
	static void OnLoadComplete(UniWebView webView, bool success, string errorMessage) {
		if (success) {
			Debug.Log("[N]---browser load complete!");
			webView.Show();
		} else {
			Debug.Log("[N]---Something wrong in webview loading: " + errorMessage);
		}
	}

	/// <summary>
	/// 页面标签信息回调
	/// </summary>
	/// <param name="webView">Web view.</param>
	/// <param name="message">Message.</param>
	static void OnReceivedMessage(UniWebView webView, UniWebViewMessage message) {
		Debug.Log("[N]---"+message.rawMessage);
		//NTODO 处理下必要的页面标签返回信息
	}

	/// <summary>
	/// 弹出Alert
	/// </summary>
	/// <param name="alert">Alert.</param>
	public void ShowAlertInWebview(string alert) {_webView.EvaluatingJavaScript(alert);}

	/// <summary>
	/// 浏览器关闭回调
	/// </summary>
	/// <param name="webView">Web view.</param>
	static bool OnWebViewShouldClose(UniWebView webView) 
	{
		Debug.Log("[N]---browser close!");
		if (webView == _webView) {
			_webView = null;
			return true;
		}
		return false;
	}
	
	/// <summary>
	/// 横竖屏切换
	/// </summary>
	/// <returns>The for screen oreitation.</returns>
	/// <param name="webView">Web view.</param>
	/// <param name="orientation">Orientation.</param>
	static UniWebViewEdgeInsets InsetsForScreenOreitation(UniWebView webView, UniWebViewOrientation orientation) {
		int bottomInset = (int)(UniWebViewHelper.screenHeight);
		if (orientation == UniWebViewOrientation.Portrait) return new UniWebViewEdgeInsets(0,0,bottomInset,0);
		else return new UniWebViewEdgeInsets(0,0,bottomInset,0);
	}

	/// <summary>
	/// 检测URL合法性
	/// </summary>
	/// <returns><c>true</c>, if UR was checked, <c>false</c> otherwise.</returns>
	/// <param name="url">URL.</param>
	static bool CheckURL(string url){
		bool b = false;
		b = Regex.IsMatch(url,"^http://[a-z0-9A-Z.-]*");
		return b;
	}

}


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
UniWebView是用于移动Unity3D游戏的现代Web视图组件。将网页内容集成到游戏中从未如此简单。什么是UniWebView UniWebView是一个Unity 3D插件,用于将Web视图组件添加到Unity 3D手机游戏中。UniWebView在C#中包含一组抽象的高级API,它们包装了iOSAndroid平台的本机API。借助UniWebView,您可以在不了解本机开发的情况下将某些行为(例如浏览器)插入游戏。当您需要显示公告或通知,为玩家排名添加排行榜或仅向用户显示任何网页时,此功能非常有用。 #支持的平台 UniWebView支持运行: iOS 9.0或以上 Android 5.0(API级别21)或更高版本 在iOS上,UniWebView WKWebView用作渲染组件。在Android WebView使用UniWebView还包含macOS上的Unity Editor支持,用于试目的。如果要在Mac上开发游戏,则可以直接在Unity Editor的播放模式下打开独立的Web视图。如果您在Windows PC上工作,则仍可以在移动设备上构建和使用UniWebView,但是无法在Windows Unity编辑器中直接查看结果。 该编辑器插件是功能齐全的各种移动版本。尽管UniWebView是为移动平台设计的,但如果需要,您也可以将其放入独立的macOS游戏中。 #版本3 UniWebView项目始于2013年。UniWebView的原始版本支持Unity4。在Unity 5中,Unity团队更改了本机插件工作方式的方法,并且无法在同一插件版本中同时支持Unity 4和5。因此,我们决定对版本2进行重大升级。经过几年的开发,UniWebView 2现在非常稳定。但是,遗留代码仅UIWebViewiOS上支持旧样式(并且已弃用),并且我们还必须考虑向后兼容性,并且也必须使用过时的API WebView。 我们对这种情况不满意。如果我们使用最新技术,则性能和代码质量可能会大大提高。添加功能和解决问题也将更加容易和快捷。这就是我们决定从头开始重写UniWebView的原因。在版本3中,我们再次从0开始,并重新设计了几乎所有API。凭借过去几年的发展经验,我们有机会使美好的事物变得更好,而糟糕的设计也就消失了。 已经在使用UniWebView 2?请查看第3版的重点内容,以了解它是如何从以前的版本演变而来的。请注意,版本3与版本2不兼容。如果要从UniWebView 2升级,则不妨对迁移指南进行简要介绍。大多数概念是相似的,但可能仍需要一段时间才能升级。我们还建议您阅读我们的文档,以将UniWebView的潜在功能带到您的项目中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值