2017-04-10 160 views
2

我在爲我的應用程序的視圖之一幾個環節:鏈接iOS中離子的應用程序不打開立即

  1. 共享
  2. 添加到日曆
  3. 打開一個外部鏈接

在我用來測試應用程序的iPhone上,1和2種工作,但只有當按下主頁按鈕然後返回到應用程序時,纔會出現共享/日曆對話框。任何人都可以提出什麼可能會導致此?我不確定哪裏可以看。

外部鏈接使用window.open(url,「_system」),因爲我無法獲得常規類型鏈接以在模擬器中工作。我可以切換回普通的HTML鏈接,但另一個鏈接可以在測試iPhone上運行。使用iOS在手機瀏覽器中打開鏈接的建議方法是什麼?

代碼大致如下。

.controller('WCtrl', function ($scope, $stateParams, $sce) { 
 
    // ... 
 
    $scope.doShare = function() { 
 
    var options = { 
 
     message: 'Message here', 
 
     subject: 'Event shared' 
 
    }; 
 
    var onSuccess = function (result) { 
 
     console.log('Share successful.'); 
 
    }; 
 
    var onError = function (msg) { 
 
     console.log('Sharing failed with message: ' + msg); 
 
    } 
 
    window.plugins.socialsharing.shareWithOptions(options, onSuccess, onError); 
 
    }; 
 
    $scope.doCalAdd = function() { 
 
    var onSuccess = function (result) { 
 
     console.log('Add to calendar successful.'); 
 
    }; 
 
    var onError = function (msg) { 
 
     console.log('Add to calendar failed with message: ' + msg); 
 
    } 
 
    // ... 
 
    window.plugins.calendar.createEventInteractively(
 
     title, 
 
     location, 
 
     notes, 
 
     starttime, 
 
     endtime, 
 
     onSuccess, 
 
     onError); 
 
    }; 
 
    $scope.doTicketsOpen = function() { 
 
    var url = w.ticketing; 
 
    window.open(url, '_system'); 
 
    }; 
 
})
<ion-view class="item-text-wrap" view-title="Event Details"> 
 
    <ion-content class="has-footer"> 
 
    <!-- ... --> 
 
    </ion-content> 
 
    <ion-footer-bar> 
 
    <div class="button-bar"> 
 
     <div class="button icon ion-share" ng-click="doShare();">Share</div> 
 
     <div class="button icon ion-calendar" ng-click="doCalAdd();">Calendar</div> 
 
     <div class="button icon ion-link" ng-click="doTicketsOpen();">Ticketing</div> 
 
    </div> 
 
    </ion-footer-bar> 
 
</ion-view>

我在index.html作爲下方的內容安全,政策meta標籤。

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' http://* 'unsafe-inline'; script-src 'self' http://* 'unsafe-inline' 'unsafe-eval'" /> 
+0

?如果你有它,你可以發佈它嗎? – jcesarmobile

+0

@jcesarmobile,謝謝我在帖子中加入了它。我也試圖朝這個方向進行搜索。似乎我可能需要添加差距:在默認src? – potNPan

+1

是的,你必須添加'gap:'使插件在iOS 10上工作,請參閱我的答案http://stackoverflow.com/questions/43316548/phonegap-build-app-inappbrowser-window-is-not-shown - 自動/ 43327716#43327716 – jcesarmobile

回答

2

您必須添加gap:Content-Security-Policy meta標籤的default-srcindex.html

這是因爲iOS上的10蘋果得到了與CSP嚴格,*你有在您的index.html一個內容安全,政策meta標籤不包括一些事情

+0

我在哪裏可以閱讀更多關於此?如果我沒有在這裏發佈這個問題,我不會考慮看看Content-Security-Policy元標記。 – potNPan

+1

關於蘋果越來越嚴密,沒有關於它的任何信息,它甚至可能是一個錯誤,事實上它在第一次iOS 10測試中更糟糕,但蘋果公司並沒有提供任何有關它的信息,人們通過測試發現。關於一般的CSP,有一些關於白名單插件文檔的信息https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-whitelist/#content-security-policy,有人提到gap:是使用UIWebView時需要的插件(默認)。這對於正確配置CSP也很有用https://content-security-policy.com/ – jcesarmobile

+0

@jcesarmobile謝謝,它幫助:-) – Sopo

相關問題