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 App成为了一种可行的发展模式。H5 App不仅可以有效地降低开发成本,还可以跨越终端限制,使得应用能够被更多的用户所使用,因此在近几年中受到了越来越多的开
2023-05-26
免费h5制作app推荐
在当今移动应用市场竞争激烈的环境下,越来越多的企业和个人选择制作自己的移动应用来推广业务或者展示自己的能力,而在制作移动应用方面,不少人往往会遇到高昂的成本、复杂的开发流程等问题,特别是有些公司或个人可能只需要一个简单的App,用于宣传或展示自己,那么使用
2023-05-26
开发h5 app
H5 App是基于HTML5技术开发的一种Web应用,可以通过Web浏览器来访问和运行,类似于普通的Web应用程序,但可以在移动设备上运行,具有更好的跨平台性和可移植性。H5 App的开发流程可以简单概括为以下几个步骤:1. 确定应用需求和功能:首先需要明
2023-05-26
封装h5成app
封装h5成app即将网页或者网站打包封装成一个原生APP应用程序,让用户可以在手机上更方便地使用。这是一种非常流行的方法,因为HTML、CSS和JavaScript等网络技术使得开发人员能够快速开发响应式的、适应不同设备的网站或应用程序。本文将详细介绍如何
2023-05-25
h5页面制作app的
在移动应用市场中,现在越来越多的应用采用了h5页面来呈现内容。那么h5页面是如何制作出app的呢?本文将介绍h5页面制作app的原理和详细步骤,帮助读者了解这个过程。一、H5页面H5页面是HTML5技术集成的一种网页制作标准,相对于传统的网页技术,H5具有
2023-05-25
h5能生成app吗
HTML5(H5)是一种网页开发标准,现在已成为一种强大的工具,有些人会在移动应用程序的开发中是否可以利用HTML5呢?可以回答“是”。下面将对H5生成APP的原理及详细介绍进行阐述。#### 一、H5生成APP的原理H5生成APP的原理就不难理解,即通过
2023-05-25
h5开发app框架对比
HTML5是一种跨平台的编程语言,可以被用于开发Web应用程序和本地应用程序。而随着移动设备市场的蓬勃发展和移动应用程序的需求的增加,HTML5的优点也越来越受到重视。本文将介绍一些流行的HTML5应用程序框架及其特点,以便于开发人员选择合适的框架来开发应
2023-05-25
h5开发app教程
HTML5是目前最新版本的HTML标准,它可以用来开发跨平台的web应用程序和移动应用程序,所以很多开发者会用H5来开发APP。本文将详细介绍H5开发APP的原理和步骤。1. H5开发APP的原理H5开发APP的原理是通过Hybrid技术实现的。所谓Hyb
2023-05-25
h5封装的app能上架吗
随着移动互联网市场的蓬勃发展,越来越多的企业开始关注移动端产品的开发。而对于一个企业来说,拥有一款自己的App无疑是提高产品形象、促进品牌传播的最佳方式之一。然而,App的开发成本较高,对于小型企业来说,投入大、收益低等问题也许会让他们望而却步。因此,很多
2023-05-25
app用原生开发和h5开发的区别
APP是指应用程序,也就是指设计并制作出来的可以被移动设备适当读取并运行的软件系统。APP的开发有两种主要方式:原生开发和H5开发。原生开发是指将应用程序直接利用操作系统提供的API进行开发,而H5开发则是将应用程序打包成一个Web页面,通过浏览器的解析来
2023-05-25
app开发用h5还是原生
移动应用的开发方式可以分为两种:原生和H5。原生即使用本地开发语言和框架,如Objective-C、Java、Swift等语言开发应用程序,针对一定的操作系统和设备进行优化,实现更加流畅的用户体验。H5则是用HTML5、CSS3、JavaScript等We
2023-05-25
app开发公司多页面h5模板
多页面H5模板是指在一个H5应用中,包含多个独立页面的模板。相比于单页面H5模板,多页面H5模板更加灵活,可以适应更多的使用场景。如果你是一个APP开发公司,需要为客户开发能够在移动端展示的H5页面,那么多页面H5模板就是非常好的一个选择。下面,我们就来详
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3