gpt4 book ai didi

android - 应用程序不支持 Android 上的 Phoneap 2.9 自定义 Intent ,仅支持浏览器

转载 作者:行者123 更新时间:2023-11-29 01:50:18 25 4
gpt4 key购买 nike

我在使用 Phonegap 2.9 Android 应用程序时遇到以下情况:我声明了一个自定义 Intent ,以便可以从网站打开该应用程序。在应用程序中,我调用一个我用表单控制的外部站点。在外部站点的页面上,有一个按钮使用自定义 intent URL 返回应用。

此构造适用于应用程序的 iOS 版本,也使用 Phonegap。

但是,对于 Android 版本,Android 的弹出窗口表示它无法识别自定义 URL/intent。当我打开浏览器并导航到同一个外部站点并使用自定义 intent-URL 按下后退按钮时,应用程序就会启动。

在 stackoverflow 和整个互联网上搜索了几个小时之后,我仍然无法弄清楚为什么它没有按预期工作。

或许值得一提的是,应用程序和外部站点都在使用 jQuery Mobile。使用

从应用程序打开外部站点
navigator.app.loadUrl('https://site.external/');

页面位于 HTTPS/SSL 位置,这有什么区别吗?

list 看起来像这样:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:windowSoftInputMode="adjustPan"
package="com.test.app" android:versionName="1.0" android:versionCode="1" android:hardwareAccelerated="true">
<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true"
android:resizeable="true"
android:anyDensity="true"
/>

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="17"/>

<application android:icon="@drawable/icon" android:label="@string/app_name"
android:hardwareAccelerated="true"
android:debuggable="true"
android:allowBackup="false">
<activity android:name="AppName" android:label="@string/app_name"
android:theme="@android:style/Theme.Black.NoTitleBar"
android:screenOrientation="portrait"
android:launchMode="singleTop"
android:exported="true"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<data android:scheme="customurl" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
<activity
android:name="org.apache.cordova.DroidGap"
android:label="@string/app_name"
android:configChanges="orientation|keyboardHidden">
<intent-filter></intent-filter>
</activity>
</application>
</manifest>

外部页面中的代码使用 javascript 来防止 Google 自动搜索可能出现的问题:

window.location = 'customurl://back/';

使用自定义 Intent 按下按钮时收到的错误:

Application Error
The protocol is not supported. (customurl://back/)

那么,如何让从应用程序访问的外部网站再次启动应用程序,以便用户返回到应用程序?在搜索了几个小时之后,我能想到的唯一可能性是在用户导航到外部站点时关闭应用程序。

最佳答案

我认为您可能还需要在 intent 过滤器中设置主机:

<data android:scheme="customurl" />
<data android:host="somewebsite.com" />

你能检查一下这是否有所不同吗?

关于android - 应用程序不支持 Android 上的 Phoneap 2.9 自定义 Intent ,仅支持浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18575475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com