Unity内部打开Web网页——《UniWebView》插件的使用一

版权声明:转发,使用请留言告知 https://blog.csdn.net/qq_37310110/article/details/79761844

    前言:

   深入了解请参考 Unity内部打开Web网页——《UniWebView》插件的使用二

在官方提供的sdk里 最新的3.0版本跟之前的旧版本2.8差距其实还是很大的,但是功能上只加不减,且调用起来更加方便。2.8版本的sdk插件里面有一个完整的demo包括各种调用,但是3.0版本的就没有相关的demo所以我们只能参考2.8的demo,我这里把官方的版本迁移说明文档地址 给大家  http://docs.uniwebview.com/guide/migration-guide.html  一点要看研究一下。本篇基于2.8版本

因为项目上的需求,要在应用内打开指定的网络地址。就想着先查询学习一下,发现很多人都是推荐使用UniWebView这个插件,这个插件在unity商店里是收费的,我这里给大家一个免费的地址链接。

这两个版本的资源链接都会发给的大家。https://download.csdn.net/download/qq_37310110/10318627

最后也会把demo源码发给大家  https://download.csdn.net/download/qq_37310110/10318633

插件导入:

插件导入后是三个文件夹,有兴趣的可以看一下他们的源码了解一下。这里我们以实现功能节省时间为主.把prefab里面的预制体直接拖拽到Hierarchy面板

点击UniWebViewObject可以看到如下几个设置选项

1.打开的网页界面占比

2.目标网站

3.是否在开始就加载,一般为false

4.是否加载成功就默认显示,我一般也是false,这个其实无所谓,反正在代码里会调用显示。

5.界面是否有ToolBar效果 我直接忽略

代码编写:

因为在实际开发中,我们不可能只需要一个网站,所以我在UniWebViewHelper类里加了一个方法

  public static UniWebView CreateUniWebView(GameObject go, string url, float top, float left, float bottom, float right)
    {
        if (go == null || !go.activeSelf)
        {
            return null;
        }

        var view = go.GetComponent<UniWebView>();
        if (view == null)
        {
            view = go.AddComponent<UniWebView>();
        }

        view.insets = new UniWebViewEdgeInsets(UniWebViewHelper.ConvertPixelToPoint(top, false), UniWebViewHelper.ConvertPixelToPoint(left, true), UniWebViewHelper.ConvertPixelToPoint(bottom, false), UniWebViewHelper.ConvertPixelToPoint(right, true));
        view.SetShowSpinnerWhenLoading(true);
        view.immersiveMode = false;
        view.url = url;
     
        return view;
    }

目的在于随时用随时Create。而且网页显示界面的初始化也可以写在里面包括一些界面尺寸,显示模式,目标网址

新建OpenUrl类

#region 模块信息
// **********************************************************************
// Copyright (C) 2018 Blazors
// Please contact me if you have any questions
// File Name:             OpenURL
// Author:                romantic123fly
// WeChat||QQ:            at853394528 || 853394528 
// **********************************************************************
#endregion
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class OpenURL : MonoBehaviour {
    public InputField _url;
    public Button _enterBtn;
    public Button _backBtn;

    UniWebView _view;
    private void Awake()
    {
        _enterBtn.onClick.AddListener(OpenUrl);
        _backBtn.onClick.AddListener(CloseUrl);
        _backBtn.gameObject.SetActive(false);
    }

    public void OpenUrl()
    {
        if (_view!=null)
        {
            _view.CleanCache();
        }
        if (_url.text == null)
        {
            return;
        }
        _view = UniWebViewHelper.CreateUniWebView(gameObject, "http://"+_url.text, 100,0,50,0);
        _view.OnLoadComplete += View_OnLoadComplete;
        _view.Load();
    }

    private void View_OnLoadComplete(UniWebView webView, bool success, string errorMessage)
    {
        if (success)
        {
            //  显示 加载完成的界面  
            webView.Show();
            _backBtn.gameObject.SetActive(true);
        }
        else
        {
            //   输出 错误码  
            Debug.LogError("Something wrong in webview loading: " + errorMessage);
        }
    }
    public void CloseUrl()
    {
        _view.Hide();
        _view.OnLoadComplete -= View_OnLoadComplete;
        Destroy(_view);
    }
}

两个按钮一个是确定进入目标网站,另一个是退出当前网站并删除。

直接上图直观明了。

基于安卓打包测试。因为项目赶得紧没有时间去详细的了解更深层次的功能。希望大家有时间就去深入了解一下互相交流探讨

此demo源码地址 https://download.csdn.net/download/qq_37310110/10318633

深入了解请参考 Unity内部打开Web网页——《UniWebView》插件的使用 二

猜你喜欢

转载自blog.csdn.net/qq_37310110/article/details/79761844
今日推荐