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技术的结合来实现的,具有跨平台、兼容性强、可维护性高等优点。目前市面上较为流行的做H5手机App的方式主要有以下几种:1. Hybrid AppHybrid App(混合式App)是基于原生App的WebVi
2023-05-26
怎么把微信h5游戏做成app
将微信H5游戏做成APP可以让游戏在更多的平台上发挥作用,增长用户群体。下面我们将介绍如何将微信H5游戏转化为APP。第一步:打包游戏将游戏页面打包成一个文件夹。有许多工具可以完成这项工作,如 PhoneGap、Cordova、Ionic 等等。我在这里使
2023-05-26
用h5做手机app
目前,Web App 确实已经成为了移动互联网应用的一种重要形态,其最大的优点是运行于浏览器,无需安装即可使用。当然,Web App 很大的一个局限就是其离线缓存问题。虽然在HTML5中,加入了App Cache属性,允许开发者让Web App支持离线缓存
2023-05-26
芜湖h5开发app
随着移动互联网的快速发展,H5开发已经成为一种新兴的技术。H5技术是一种可以通过HTML、CSS、JavaScript等前端技术编写的网页,运行在移动设备上,但是它所具备的交互体验与原生App十分相似。本文将对芜湖H5开发App的原理和详细介绍进行阐述。一
2023-05-26
免费制作h5页面的app
随着移动互联网的普及,h5页面的制作变得越来越受欢迎。h5页面无需安装应用程序,使用方便,具有良好的跨平台性能,是普及移动解决方案的重要途径。不过,如何制作一个令人满意的h5页面呢?这里介绍一个免费制作h5页面的app - HBuilderX。HBuild
2023-05-26
vue开发app和h5
随着移动互联网的兴起和发展,越来越多的应用开始向移动端发展。Vue作为一款流行的前端框架,也逐渐受到了移动端开发的青睐。在移动端开发中,Vue主要用于开发Hybrid App和移动端的H5应用。一、Hybrid AppHybrid App是介于原生App和
2023-05-25
h5做的安卓app
随着移动互联网的发展,越来越多的人开始使用手机进行各种操作。对于开发者来说,如何快速地开发出一款应用成为了一个重要问题。为了解决这个问题,我们可以使用HTML5技术来开发安卓应用。HTML5是网页标准的最新版本,它支持更多的功能和API,为移动设备提供更好
2023-05-25
h5开发app
HTML5开发移动应用是目前非常流行的一种方式,它的特点是开发成本低、跨平台性强、易于维护和更新等。具体来说,HTML5开发移动应用是依托HTML5、CSS3、JavaScript等技术实现的,通过浏览器或封装成原生应用方式运行在移动设备上。首先,HTML
2023-05-25
h5开发app哪个好
HTML5 是目前非常流行的跨平台开发技术之一,它可以用来开发各种类型的应用程序,包括桌面应用、移动应用和 Web 应用。在这篇文章中,我们将介绍如何使用 HTML5 开发应用程序,以及我们应该选择哪个 HTML5 框架或开发工具。HTML5 是一种标记语
2023-05-25
h5封装app ios不能上架
近年来,随着移动互联网的迅速发展,越来越多的公司选择通过封装 H5 页面的方式来发布 App。封装 H5 的优势在于可以节省开发成本,快速迭代更新,同时可同时实现跨平台开发,因此备受青睐。但是,在一些需要上架 App Store 的情况下,封装 H5 的
2023-05-25
h5打包的app是还会实时改变吗
HTML5 打包的移动 App 可通过 WebView 加载一个本地 HTML5 文件夹,这个文件夹中包含着 App 的各种前端代码、资源和数据。这种方式的好处是不依赖于操作系统,同时也没有必要懂 Java 或者 Objective-C 等语言。HTML5
2023-05-25
h5版app开发成本
近年来,随着移动设备的普及,越来越多的企业开始意识到移动化的重要性,而H5版App的开发成本相比原生App要低很多,也更方便迭代和维护,因此受到了越来越多企业的欢迎。H5版App的基本原理是通过前端技术实现类似原生App的交互效果和用户体验,界面基于浏览器
2023-05-25
©2015-2021 一门APP yimenapp.com  川公网安备 51019002001185号 蜀ICP备17005078号-3