从WebView android中的应用程序打开链接

时间:2017-07-11 07:47:41

标签: android webview android-recyclerview android-webview

我正在开发的应用程序有一个下载链接,可以通过点击它在移动浏览器中打开但我希望它在我的应用程序中的webView中打开。我的应用程序不是网络应用程序我只想在webview中打开应用程序链接。我的网站上有数百个应用程序。我从wp api获得应用程序,并且像playstore一样,用户可以从我的应用程序下载应用程序。我尝试了不同的解决方案,但没有成功。附加SS以解决我的问题。需要帮忙!!

Here is the screenShot attached.

2 个答案:

答案 0 :(得分:0)

首先指定在应用程序中打开链接的intent-filters

    <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="https"/>
        <data android:scheme="http"/>
        <data android:host="pollux.androidapksfree.com"/>
        <data android:pathPrefix="/hdata"/>

    </intent-filter>

然后处理它并在启动器Activity中传递给WebView。

  protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //check that link is not null 
        //or that you opened app from deep link
        if (getIntent() != null) {
            Uri intentUri = getIntent().getData(); //get link
            webView = (WebView) findViewById(R.id.webView);
            webView.getSettings().setJavaScriptEnabled(true);
            webView.loadUrl(intentUri.toString()); //open it in webView
         }
  }

答案 1 :(得分:0)

点击链接后,Android操作系统会创建一个带有该链接的Intent作为URL并搜索可以处理该意图的应用程序。由于移动浏览器可以处理这些“http://”意图,因此意图被投放到移动浏览器并在那里打开链接。 如果你想在你的webView中打开它,你必须声明你的活动可以处理这些意图,并且必须使你的活动默认处理这些意图。

可以通过以下链接完成

https://developer.android.com/training/app-indexing/deep-linking.html

请注意,如果您已完成此操作,那么点击任意位置的这些域名的任何链接都只能在您的应用中打开,因为它是默认的