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(Hyper Text Markup Language)是一种开放标准的标记语言,用于创建网页和应用程序。H5应用程序可以通过普通网页浏览器在不同的操作系统上运行,并可访问硬件设备如摄像头、麦克风等,因此越来越受到广大开发者的青睐。H5应用程序的开发可
2023-05-26
手机制作h5页面的app
在移动互联网时代,H5页面已经成为各种活动和宣传优化的重要手段,而使用手机制作H5页面也成为了许多个人和小企业的选择。 在这篇文章中,我将为您介绍一种基于手机的制作H5页面的应用程序原理。首先,我们需要了解什么是H5页面。H5页面,又称为 HTML5页面,
2023-05-26
崇左h5开发app
在移动互联网时代,随着移动设备的普及和H5技术的不断发展,越来越多的网站开始将自己的业务拓展到移动端,甚至开始尝试开发自己的APP,以此来提升用户的体验和粘性。本文将介绍如何使用H5技术来开发APP,以及H5技术在APP开发中的优势。一、H5技术在APP开
2023-05-25
h5做app的
HTML5(以下简称H5)是一种基于Web标准的技术,可以实现跨平台、跨设备的应用开发。在移动互联网时代,以H5为基础开发的手机App成为了一种非常流行的开发方式,这种方式被称为H5打包App。H5打包App的原理是将Web应用通过打包工具封装成一个本地应
2023-05-25
h5页面制作app
近年来,移动互联网行业发展迅速而又广阔,无论是从用户数量还是商业化程度上来看,都是前所未有的。利用H5页面制作APP,可以提高开发速度,降低开发成本,让APP制作变得更加简单。下面,我们将详细介绍H5页面制作APP的原理和方法。一、H5页面介绍H5页面是一
2023-05-25
h5跳转app制作
HTML5是一种用于构建网站和应用程序的标准, 它可以用于构建跨平台的应用程序, 通过使用一些技术和工具, 可以将应用程序包装成原生应用程序, 可以在移动设备上运行。通过H5跳转App, 可以使用H5网页来打开本地应用程序, 允许在应用程序中执行一些特定的
2023-05-25
h5开发app价格
H5开发APP是指使用HTML5、CSS3、JavaScript等前端技术语言来开发应用程序,可跨平台的运行于移动端的APP。这种技术在近几年逐渐发展起来,优点在于不用针对不同的操作系统开发不同的APP,且可大大降低开发成本和维护成本。H5开发APP的价格
2023-05-25
h5混合式开发app
H5混合式开发App是将HTML5、CSS3、JavaScript等web技术与原生移动应用相结合,旨在以更高效的方式开发跨平台应用。下面将对其原理和详细介绍进行阐述。一、原理在传统的开发模式中,原生应用是指利用Java、Swift或Object-C等语言
2023-05-25
h5打包app后浏览器没有返回键
当我们使用 H5 构建 APP 时,我们会面临许多问题。其中之一就是在 APP 中浏览器没有返回键的问题。这让许多用户感到困惑,也让很多开发者感到头痛。在这里我们将介绍这个问题的原因以及如何解决它。首先,让我们了解一下如果我们在手机浏览器中打开一个网页,我
2023-05-25
h5打包app域名
H5是一种基于Web技术的应用程序开发方式,可以实现应用的跨平台和在线即时更新。随着移动互联网的发展,H5应用变得越来越受欢迎,也出现了很多将H5应用打包成原生App的工具,比如Cordova、PhoneGap等。打包H5应用成原生App有很多优点,比如可
2023-05-25
h5 app在线打包
H5 App在线打包是一种将H5应用程序转化为原生应用程序的技术。这种技术可以帮助开发者将H5应用程序快速地上线到各个应用商店中,并提供更好的用户体验和更广泛的覆盖范围。在本文中,我们将讨论H5 App在线打包的原理和详细介绍。一、H5 App在线打包的原
2023-05-25
app开发小程序h5
App开发、小程序、H5都是现代互联网领域中比较热门的话题。其中,App开发是指为iOS、Android等移动操作系统开发原生应用程序;小程序是指在微信、支付宝等应用中运行的类似于小型应用的程序;H5则是指基于网页技术进行开发和设计的应用。本文将会从这三者
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3