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
H5(HTML 5)是指HTML、CSS和JavaScript技术的更新版本,是互联网应用的基础技术,可以用于开发网页应用和移动应用。为了更好地发挥H5的优势,开发人员可以使用一些专门为H5设计的APP,本文将介绍H5 APP的原理和详细信息。一、H5 A
2023-05-26
制作h5免费app
H5是一种基于HTML、CSS、JavaScript等技术的网页制作技术,而制作H5免费APP的本质是将H5网页封装成APP进行发布。下面将对制作H5免费APP的原理及步骤进行介绍。一、制作H5免费APP的原理制作H5免费APP的原理本质上是将H5网页进行
2023-05-26
怎么把h5游戏做成app
在现代移动互联网的发展中,由于移动设备的不断升级和网络技术的不断拓展,H5游戏作为一种轻量级游戏形式,获得了越来越广泛的应用和推广。然而单纯的H5游戏在移动设备上的体验往往不尽人意,这时候开发一款H5游戏App将成为第一个考虑的选择。本文将介绍如何将H5游
2023-05-26
镇江h5开发app
H5是HTML5技术的简称,是一种新兴的前端技术,利用它可以实现跨平台、跨终端、跨系统的应用,H5开发App也是顺势而为的趋势。镇江是一座江苏省境内的美丽城市,如今,在这座城市中,越来越多的企业开始关注H5开发App的技术,下面就详细介绍一下H5开发App
2023-05-26
用h5开发app打包
近年来,随着 HTML5 技术和移动互联网的快速发展,越来越多的开发者开始考虑使用 HTML5 来开发移动应用程序。相较于传统的原生应用开发,使用 HTML5 开发应用程序可以提高开发效率、降低开发成本和提高开发者的跨平台能力。而将使用 HTML5 开发的
2023-05-26
前端h5和app做起来的区别
在移动应用开发领域,H5和原生App是两种不同的开发方式。H5是基于Web技术的应用,可以在网页上访问,而原生App则是下载安装在手机上的应用,与操作系统紧密集成。本文将详细介绍H5和原生App的区别。1.技术基础不同H5技术基础是基于Web技术去开发的,
2023-05-26
h5页面制作app
近年来,移动互联网行业发展迅速而又广阔,无论是从用户数量还是商业化程度上来看,都是前所未有的。利用H5页面制作APP,可以提高开发速度,降低开发成本,让APP制作变得更加简单。下面,我们将详细介绍H5页面制作APP的原理和方法。一、H5页面介绍H5页面是一
2023-05-25
h5可以自己开发app上架苹果吗
答案是可以的。HTML5是一种可以在各种平台和设备上轻松使用的开放式技术。因此,利用HTML5开发一个APP并发布到苹果商店上,已经成为一个非常流行的开发方式。以下是详细介绍及原理:一、为什么需要HTML5应用在移动端开发?1. 跨平台概念 HTML5是一
2023-05-25
h5开发app 开源
随着移动互联网的快速发展,移动应用程序已经成为企业和个人进入市场的一种最有效的方式之一。而开发一个移动应用程序需要大量的时间和精力,但是开发H5应用程序可以简化很多工作,节省时间和精力。H5开发的优点在于可以使用一个标准的Web技术栈来进行应用程序开发。这
2023-05-25
h5打包出app
H5(HTML5)是一项全新的网络技术,它可以让开发人员使用HTML、CSS和JavaScript构建应用程序。HTML5使得开发人员能够使用这些技术构建跨平台的应用程序,这意味着如果您确定了一个布局,您可以在iPhone、Android、Windows
2023-05-25
app开发小程序开发h5页面
近年来,移动设备和智能手机的广泛使用对互联网的影响越来越大,如何在移动端促进业务增长已成为很多企业需要解决的问题。在这种情况下,待特定领域的小程序、App和H5页面成为了很多企业推广的重要手段。一、小程序开发小程序是一种新型的应用方式。它能够在不安装App
2023-05-25
app局部内嵌h5页面开发
随着移动终端的普及,许多应用程序也逐渐采用了Web技术作为其开发工具。通过将H5(HTML5)页面作为应用程序的一部分来开发,可以实现应用程序的动态化或可扩展性,同时也能够降低开发成本。在此过程中,将H5页面嵌入应用程序是一个非常重要的环节,而H5页面的嵌
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3