APP封装从一门开始
一门提供APP封装底层开发框架,一键在线APP封装,200+原生APP模块,2000+JS映射接口按需自助封装

h5封装的app怎么打开默认浏览器

在移动应用领域,原生应用和Hybrid应用已经成为主流。原生应用指的是使用操作系统提供的API来实现的应用,而Hybrid应用则是一种介于原生应用和Web应用之间的应用。在Hybrid应用中,常使用H5技术来实现应用的Web部分。

在Hybrid应用中,H5部分通常被封装在一个WebView中。其中WebView是Android平台和iOS平台上的一种控件,它可以加载显示Web页面,并在其中执行JavaScript脚本。在WebView中打开网页时,默认会使用应用中自带的浏览器,而并非是用户所选择的默认浏览器。因此,如何在Hybrid应用中打开用户所选择的默认浏览器呢?

解决方案如下:

1. Android平台上的解决方案

在Android平台上,可以通过修改WebView的属性来实现在默认浏览器中打开网页的功能。具体做法如下:

1. 在AndroidManifest.xml文件中添加以下代码:

```xml

android:name=".MainActivity"

android:theme="@style/AppTheme.NoActionBar">

```

上述代码中,添加的是该Activity的intent过滤器。意思是,该页面可以接收浏览器分享的链接,并且会打开该页面。

2. 在MainActivity中添加以下代码:

```java

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

// 找到WebView控件

WebView webView = (WebView) findViewById(R.id.web_view);

// 适配5.0+系统,启用混合模式。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

// 5.0+系统开启混合模式

webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);

}

// 打开页面,同时在默认浏览器中打开

webView.loadUrl("https://www.xxx.com");

webView.setWebViewClient(new WebViewClient() {

public boolean shouldOverrideUrlLoading(WebView view, String url) {

if (url != null) {

// 手动处理跳转页面

if (url.startsWith("http://") || url.startsWith("https://")) {

view.loadUrl(url);

return false;

} else {

// 其他跳转方式,使用默认浏览器打开

try {

Intent intent = new Intent(Intent.ACTION_VIEW);

intent.setData(Uri.parse(url));

startActivity(intent);

} catch (Exception e) {

e.printStackTrace();

}

}

return true;

}

return false;

}

});

}

```

上述代码中,在WebView加载网页时,使用了WebViewClient来监听网页加载事件,如果发现链接以http或https开头,则使用WebView自带的loadUrl方法来加载该网页;否则,使用指定的默认浏览器打开该链接。通过上述方法,即可实现在默认浏览器中打开页面的功能。

2. iOS平台上的解决方案

在iOS平台上,可以通过自定义NSURLProtocol来实现在默认浏览器中打开网页的功能。具体做法如下:

1. 在AppDelegate.m文件中添加以下代码:

```Objective-C

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

[NSURLProtocol registerClass:[MyURLProtocol class]];

return YES;

}

```

上述代码中,MyURLProtocol是自定义的NSURLProtocol。该代码会在应用启动时注册该协议。

2. 在MyURLProtocol.m文件中进行如下实现:

```Objective-C

+(BOOL)canInitWithRequest:(NSURLRequest *)request {

return YES;

}

+ (NSURLRequest *)canonicalRequestForRequest:(NSURLRequest *)request {

return request;

}

// 该方法执行时,系统会自动使用默认的浏览器打开网页。

- (void)startLoading {

NSMutableURLRequest* request = (NSMutableURLRequest*)[self.request mutableCopy];

[[UIApplication sharedApplication] openURL:[request URL]];

[self.client URLProtocol:self didFailWithError:nil];

}

- (void)stopLoading {

}

```

上述代码中,canInitWithRequest方法和canonicalRequestForRequest方法用于处理请求。而startLoading方法,则是在请求开始时执行的方法。在这里,我们使用了UIApplication的openURL方法来打开该链接,从而使用了默认浏览器来加载网页。而stopLoading方法则是在请求结束时执行的方法。

综上所述,无论是在Android平台还是iOS平台,都可以通过一些技巧来实现在默认浏览器中打开网页的功能。这种方式极其方便,实现简单,值得开发者们的尝试。


相关知识:
用h5做手机app
目前,Web App 确实已经成为了移动互联网应用的一种重要形态,其最大的优点是运行于浏览器,无需安装即可使用。当然,Web App 很大的一个局限就是其离线缓存问题。虽然在HTML5中,加入了App Cache属性,允许开发者让Web App支持离线缓存
2023-05-26
使用h5 开发app
HTML5作为新一代Web标准,已经逐渐成为移动开发中的一个重要工具,通过基于HTML5的移动应用,可以轻松实现跨平台和跨设备的开发。而作为HTML5的一种扩展,H5应用是一种可以在智能手机、平板电脑、电视机、车载终端等不同设备上运行的Web应用程序。H5
2023-05-26
手机h5制作app
手机H5制作App的前提是要了解H5技术和App开发的基本原理。HTML5是一种用于创建Web应用程序的一种标准的技术,具备跨平台,跨终端,同时Web页面渲染速度快,交互性好,耗费资源少的特点,已经被广泛地应用于互联网行业。而App开发则需要借助Nativ
2023-05-26
h5制作游戏app哪款好
随着智能手机的普及,游戏app的市场需求不断增长,而HTML5技术也成为一种制作游戏app的重要技术手段。那么,在众多的h5游戏app制作工具中,哪款比较好呢?接下来,本文将对h5游戏app制作工具进行介绍。1. Egret引擎Egret引擎是一款开源的跨
2023-05-25
h5前端混合app开发
随着移动应用市场的繁荣和互联网技术的发展,越来越多的企业和个人开始关注移动应用的开发。h5前端混合app开发正是一种基于web技术的移动应用开发模式,它将web技术和原生技术进行混合使用,同时借助于各种跨平台框架,如Cordova,PhoneGap等,为开
2023-05-25
h5开发 安卓app
H5开发安卓APP是一种新兴的开发方式,它采用HTML5/CSS/JS等技术来编写APP,通过WebView控件将网页嵌入到安卓平台上,从而实现在安卓手机上运行的APP。这种方式可以避免安卓开发人员需要学习Java语言的需求,同时也可以方便地实现多平台开发
2023-05-25
h5开发手机app数据如何加密
在h5开发手机app中,数据加密是一项非常重要的安全技术。数据的加密是指将明文转换成不易被破解的密文,防止数据被非法获取和窃取。本文将为大家介绍h5开发手机app数据加密的相关知识。1. 加密算法常见的加密算法有对称加密算法和非对称加密算法。对称加密算法指
2023-05-25
h5和app开发分别用哪些技术
H5和APP开发都是现代互联网领域的关键技术,两者在实现上有所不同,下面将对两者的技术实现原理进行详细介绍。H5的技术原理H5的全称是HTML5,在互联网领域被广泛应用。HTML5采用了增强的HTML、CSS和JavaScript等技术来实现Web界面的更
2023-05-25
h5打包成app和自主开发的
H5技术是一种基于网页的技术,它可以在不同的设备上运行,例如手机、电脑、平板等设备。许多企业、组织和个人都开始使用H5技术来开发和设计动态和交互式网站和应用程序。但是,H5网页只能通过网络浏览器来访问,如果想要将H5网页变成应用程序,则需要将其打包成App
2023-05-25
h5打包app苹果
H5(HTML5)是一种新的Web标准,它为开发人员提供了更多的功能和标准。在移动设备普及的今天,H5也成为了移动开发的一种主流技术,用户可以通过Web浏览器来访问应用程序的服务。但是,对于一些需要离线使用的应用程序,使用H5技术开发的应用在这方面存在缺陷
2023-05-25
app原生开发和h5有什么区别吗
App原生开发与H5开发是移动端应用开发中常见的两种方式。虽然它们都可以产生移动应用,但二者有许多不同之处。下面就为大家介绍一下App原生开发和H5开发的区别。一、开发方式和技术栈App原生开发的技术栈是基于IOS和Android平台提供的开发环境,需要使
2023-05-25
app开发和h5开发的区别在哪
App开发和H5开发都属于移动端开发,但是它们之间有很大的区别。App是指手机应用程序,需要下载安装才能使用,而H5是指在浏览器中运行的网页应用程序。这里将对两者的区别进行详细介绍。1. 开发方式不同App开发通常需要使用编程语言进行开发,如Java、Ob
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3