【问题标题】:How will I open my website inside my android app我将如何在我的 android 应用程序中打开我的网站
【发布时间】:2017-02-05 14:32:19
【问题描述】:

您好,我有一个 webview android 应用程序。当有人打开我的应用程序时。我的网站在应用程序中作为 webview 应用程序打开。但是当有人在自己的浏览器中调用我的网站 url 时,我想在应用程序中打开 url。

例如当我致电 www.fb.com/somepage 时,facebook 会在我的手机内直接打开自己的应用程序。我不通过浏览器访问页面我尝试这样做。我会怎么做?

我搜索了所有我想像的东西,我找不到关于它的有用文章。我搜索了 android 支持的 url 或支持的网页。我发现了很多东西。他们写了很多代码。我认为我不需要很多代码来捕获我的网站网址。我说的不对吗?

我已经有 webview 应用程序。如果我会做一些简单的方法,比如在清单或我的 mainactivity 文件中进行一些更改。我想这样做。

感谢您的帮助

【问题讨论】:

标签: java android url webview


【解决方案1】:

您的查看操作需要intent-filter,您将链接到url方案

在您的 Manifest XML 文件中...视图意图表示操作,而 BROWSABLE 类别响应 Web URI。

定义方案

<activity android:name=".MainActivity>
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="http" 
         android:host="your-website.com" 
         android:path="/somepage/" />
    </intent-filter>
</activity> 

但是,用户必须已经安装了您的应用,否则他/她将在浏览器中收到错误消息。你绝对需要一个后备。处理错误问题的一种方法是使用一些 Javascript 检查来验证用户是否安装了应用程序(如果您使用的是 AngularJS 之类的 Javascript,您可以将其绑定到 onclick。如果没有,您可以使用某种重定向Javascript 或没有)。如果未安装应用程序,用户将转到常规网站 url。否则,他/她会跳转到应用程序。

为未安装应用的用户处理重定向

在您的网站文件或模板文件中,使用 Javascript

<script>
  //any conditional logic 
  if( navigator.userAgent.match(/android/i) ) {
  // redirect to App
  } else {
  // stay/redirect to website or something like getting them to install the app  
  }
</script>

现在,当用户点击&lt;a href="http://yourweb.com/somepage/"&gt;Your Text &lt;/a&gt; 时,她/他会访问该应用,但如果该应用未安装,她/他会访问浏览器或 Play 商店上的页面(请参阅下面的注释)。

其他选项

another way of doing all of the above。您可以拥有自己的自定义 URI,而不是定义 http 方案。

<intent-filter>
  <data android:scheme="your-custom-URI" />

</intent-filter>

并在您的 Web 模板文件中包含重定向回退的某种条件...

<a href="your-custom-URI://somepage">Your Text</a>

补充说明

  • 需要您注意的是一些浏览器细节。这是谷歌浏览器treats the subject的方法。

  • 如果您的应用在 Play 商店中,您可以将用户推荐给market://details?id=com.your.app.package 进行下载。

  • 您可以通过一些 Javascript 库实现更多功能,例如 您网站中的 AngularJS、Vue 等。

【讨论】:

猜你喜欢
  • 2015-04-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-04
  • 2021-10-07
  • 2019-04-27
  • 1970-01-01
  • 2011-02-24
  • 1970-01-01
相关资源
最近更新 更多