unity内嵌浏览器——UniWebView插件

这次突然被要求实现内嵌浏览器。在网上到处找资料参考,下面几个链接的内容感觉很实用

https://blog.csdn.net/qq_37310110/article/details/79761844

https://blog.csdn.net/shen71702163/article/details/79283645

https://docs.uniwebview.com/guide/position-and-size.html#setting-frame

分享一下这次心得吧,以下是个人感受,技术不太好,说错了敬请纠正。

1.首先找插件,小编就找到了个UniWebView2.9,附上下载链接如下,https://pan.baidu.com/s/1HPvFzKU7WNHSvxHrKtX8zg   提取码:4g2i

2.导入之后就是这样,还有个参考Demo

3.参考网上教程:(https://blog.csdn.net/qq_37310110/article/details/79761844#commentsedit

在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;

    }

3.后面发现报红线了

发现这个方法没有,网上那个教程也没说这个方法,只能自立更生思考怎么写了,发现这个是界面显示方法,参考官方文档不知道怎么写好,只能换种思路,继续查“UniWebView案例”。

4.终于找到了一篇“unity 网页 基于 UniWebView 做UGUI 适配”https://blog.csdn.net/qq_37310110/article/details/79761844#commentsedit

private static int ConvertPixelToPoint(float num, bool v)

    {

#if UNITY_IOS && !UNITY_EDITOR

        float scale = 0;

        if(v)

        {

            scale = 1f * screenWidth / Screen.width;

        }

        else

        {

            scale = 1f * screenHeight / Screen.height;

        }

        return (int)(num*scale);

#endif

        return (int)num;

    }

5.创建一个新脚本OpenURL,(代码有点长,大家可以直接去上一个链接那里复制就行)

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, "https://" + _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);

    }

}

6.创建两个按钮和一个输入框,在canvas下挂OpenURL和UniWebView这两个脚本,记得给OpenURL挂按钮,那个UniWebView参数直接是在代码改变的,所以不用设置。

7.这样就成功了,不过注意如图下是因为在OpenURL脚本里的OpenUrl方法本来加了http://,可以选择去掉或者输入不要http://。

8.效果如下(之前的top=100是为了空白可以显示上面的返回按钮,bottom=50底部留白)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,864评论 6 494
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,175评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,401评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,170评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,276评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,364评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,401评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,179评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,604评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,902评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,070评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,751评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,380评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,077评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,312评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,924评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,957评论 2 351