在iOS7 safari中,单击智能横幅"打开"按钮不会触发UIApplication :: openURL:(NSURL*)....
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
Run Code Online (Sandbox Code Playgroud)
此问题仅在iOS7中重现.我有一种感觉,这是iOS7中的一个错误.
我正在使用元标记在iphone/ipad设备的app横幅中显示我的应用程序ios.
<meta name="apple-itunes-app" content="app-id=xxxxxxx"/>
Run Code Online (Sandbox Code Playgroud)
当我使用Iphone进行测试时,如果安装了应用程序,横幅就会非常有用,如果没有安装,横幅就不会显示.
我也和其他应用程序(如facebook等)进行相同的测试,横幅在所有情况下都能正常工作.
可能是什么问题?
我们遇到一个问题,智能横幅出现在iOS6上的Safari中,但是当在iOS7上使用非5s设备在Safari中进行测试时,横幅会短暂出现(一种没有内容的占位符),然后消失.我们测试了除我们之外的其他网站,它的接缝是一致的行为.dropbox.com cnn.com usatoday.com所有的智能横幅都可以通过Safari iOS6看到,但是当从iPhone4,iPhone4s,iOS模拟器,iPhone5从Safari iOS7到达时,它们正在消失.
是否有其他人看到这种行为?
我在iOS智能应用横幅上遇到了一些麻烦,我正试图通过JavaScript添加它.
实际的smartbanner就像将这个小块添加到HTML的头部一样简单:
<meta name="apple-itunes-app" content="app-id=1008622954">
Run Code Online (Sandbox Code Playgroud)
不幸的是,我对上传脚本的方式非常有限.我无法直接更改HTML,因此我将通过我们的标记管理器来完成,它基本上是通过JavaScript完成的.但事实证明这不起作用.
我试图简化测试的情况:
HTML中的硬编码标签:有效(如预期的那样)
<meta name="apple-itunes-app" content="app-id=1008622954">
Run Code Online (Sandbox Code Playgroud)在文档准备就绪时直接插入JavaScript:有效
$(document).ready(function(){
$("head").append('<meta name="apple-itunes-app" content="app-id=1008622954">');
});
Run Code Online (Sandbox Code Playgroud)插入JavaScript后,setTimeout延迟:不工作
$(document).ready(function(){
setTimeout(showBanner, 1); //after 1 millisecond
});
function showBanner(){
$("head").append('<meta name="apple-itunes-app" content="app-id=1008622954">');
}
Run Code Online (Sandbox Code Playgroud)任何人都可以确认或解释为什么这个延迟的JavaScript不起作用?
重要提示:测试在实际的iOS设备上打开页面!桌面Safari/Chrome或iOS模拟器无法使用.此外,请勿关闭横幅,因为它不会再次出现.
更新:
我添加了一些没有jQuery的例子,所以简单的'ol JavaScript.但结果是一样的.一旦我们等待setTimeout()智能应用程序横幅无法加载.
Vanilla JavaScript - 直接执行.作品
showBanner();
function showBanner() {
var meta = document.createElement("meta");
meta.name = "apple-itunes-app";
meta.content = "app-id=1008622954";
document.head.appendChild(meta);
}
Run Code Online (Sandbox Code Playgroud)Vanilla JavaScript - 延迟执行.什么都不行
setTimeout(showBanner, 1);
function showBanner() { …Run Code Online (Sandbox Code Playgroud)Apple Smart Banner(meta apple-itunes-app)无法使用我的应用ID - 也不能在iPhone Safari上清除缓存后.我正在使用这个:
<meta name="apple-itunes-app" content="app-id=632225412">
Run Code Online (Sandbox Code Playgroud)
如果我将应用ID替换为其他任何人,它都可以.
它曾经工作过一段时间,我不确定是什么改变了.也许是iOS7的东西?
我已将 Smart App Banner iOS 的文档设为红色。这很好,我在我的网站上实现了它。问题是文档说:
由于 Android 生态系统和浏览器选择的碎片化,谷歌从未发布过 Android 智能横幅。所有 Android 开发人员都必须推出自己的解决方案或调整现有的解决方案。参考:https : //blog.branch.io/how-to-setup-an-ios-and-android-smart-app-banner-with-deep-linking-and-download-tracking/ 。
现在我搜索了一些答案并看到了多个答案,但我仍然无法确定我的想法是否正确。
有些人链接到:
- https://github.com/kudago/smart-app-banner
- https://github.com/ain/smartbanner.js
现在我的问题是。这些与 Google 为应用安装横幅发布的版本相同吗?链接:https : //developers.google.com/web/fundamentals/app-install-banners/native
这与 iOS 的“智能应用横幅”相同吗?这对我来说看起来没什么不同,因为它说“添加到主屏幕”和“应用安装提示(本机)”。
以前有人构建过这个解决方案吗?
我一直在尝试使用 jquery.smartbanner.js 实现 getInstalledRelatedApps API 以在 smartbanner 中工作到我的项目中,但是如下所示的 relatedApps const 返回空,并且承诺的状态始终处于“pending”状态。下面附上承诺的截图:
(async function () {
alert("running");
const relatedApps = await navigator.getInstalledRelatedApps();
alert(relatedApps);
console.log(relatedApps);
relatedApps.forEach((app) => {
console.log(app.id, app.platform, app.url);
});
})();
Run Code Online (Sandbox Code Playgroud)
Manifest.json 如下:
{
"name": "Example",
"short_name": "Example",
"lang": "en-US",
"theme_color": "#192c4f",
"background_color": "#192c4f",
"display": "standalone",
"scope": "/",
"start_url": "/",
"icons": [
{
"src": "images/36.png",
"sizes": "36x36",
"type": "image/png"
},
{
"src": "images/48.png",
"sizes": "48x48",
"type": "image/png"
},
{
"src": "images/72.png",
"sizes": "72x72",
"type": "image/png"
},
{
"src": "images/96.png",
"sizes": …Run Code Online (Sandbox Code Playgroud) 我想在Javascript中检测当前是否显示了智能应用横幅.我已经检查了DOM,但没有横幅的证据.
iPhone 的 IOS6+ 实现了智能横幅功能。这只是添加一个包含应用商店 ID 的元标记。
是否可以多次显示此智能横幅?我们可以控制它的频率吗?假设如果我想每周显示一次,这可能吗?
使用上述标签实现时,我在 IOS6+ 的 Chrome 浏览器中看不到智能横幅?有没有其他方法可以在 chrome 中实现此功能。
我没有看到任何与这些问题相关的文档。
我们需要提供较小的横幅。
我可以看到,在安装应用程序后,亚马逊等某些网站的智能横幅比百思买等其他网站的智能横幅要小。亚马逊正在采取哪些具体措施来获得较小的横幅。以下是两者的元标记
亚马逊
<meta name="apple-itunes-app" content="app-id=297606951, app-argument=com.amazon.mobile.shopping://amazon.com?chgexp=MSHOP&dl_sid=135-6432352-2690956, affiliate-data=ct=iPhone%20Gateway%20Page%20Nav%20Placement%20Banner&pt=17789">
Run Code Online (Sandbox Code Playgroud)
百思买
<meta name="apple-itunes-app" content="app-id=314855255">
Run Code Online (Sandbox Code Playgroud)
我也添加了应用程序参数和 iTunes 附属属性,但这似乎没有帮助。
我得到了一个令人讨厌的问题adMob和他的banner尺寸.智能横幅尺寸是一个非常好的东西,它几乎可以为您做任何事情,与尺寸广告有关,但只是差不多......
在谷歌文档是一个表格,其中包括smartbanner支持的大小.支持许多尺寸,但不支持普通Android手机的风景.. https://developers.google.com/mobile-ads-sdk/android-legacy/docs/admob/smart-banners
这就像现在的样子:肖像 - 一切都很好
风景 - 不工作
那么有没有办法以正确的方式在横向展示我的广告?(这是为了ads:adSize="SMART_BANNER",当我使用ads:adSize="BANNER"它显示在两者上,但它锁定到ads:adSize="BANNER"给你的大小,所以它在更大的屏幕上看起来很糟糕)
XML
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@color/main_bg_color"
android:id="@+id/rel_bg_home">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="1"
android:layout_centerInParent="true"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Test"
android:textSize="50sp"
android:id="@+id/uber"
android:shadowColor="#000000"
android:shadowRadius="5"
android:textStyle="bold"
android:textColor="@color/text_color"
android:layout_gravity="center_horizontal"
android:layout_weight="0.20"
android:gravity="center|bottom" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="bottom|center_horizontal"
android:layout_weight="0.30"
android:gravity="bottom">
<Button
android:layout_width="90dp"
android:layout_height="wrap_content"
android:text="Play"
android:id="@+id/play"
android:textColor="@color/text_color"
android:layout_marginBottom="20dp" />
<Button
android:layout_width="90dp"
android:layout_height="wrap_content"
android:text="Help"
android:id="@+id/help"
android:textColor="@color/text_color"
android:layout_below="@+id/play"
android:layout_marginBottom="20dp" />
<Button
android:layout_width="90dp"
android:layout_height="wrap_content"
android:text="Score"
android:textColor="@color/text_color"
android:id="@+id/score" …Run Code Online (Sandbox Code Playgroud) 我正在为ios> = 6 实施Smart Banner.
当用户在我的网站上并单击智能横幅打开我的phonegap应用程序时,我想将他重定向到我的应用程序的正确路径
根据ios文档,我需要使用app-argument:
<meta name="apple-itunes-app" content="app-id=myAppStoreID, affiliate-data=myAffiliateData, app-argument=myURL">
Run Code Online (Sandbox Code Playgroud)
如何在我的phonegap应用程序中截取myURL?我只能在Obj-C中找到例子
smartbanner ×13
ios ×7
android ×4
iphone ×4
javascript ×3
html ×2
ios7 ×2
safari ×2
admob ×1
ads ×1
cordova ×1
google-play ×1
ios6 ×1
itunes ×1
jquery ×1
meta-tags ×1
objective-c ×1